2018巨峰科技算法工程师笔试题

1、采集视频的格式由哪些?

A、YUV420      B、YUV444      C、RGB      D、H.264     E、JPEG     

答案:AB       

2、下列哪些是人工设计的特征:

A、Haar           B、CNN       C、Hog     D、Sift(Scale-invariant feature transform)

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况.

sift: 第一阶段:SIFT特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。

    第二阶段:SIFT特征向量的匹配。

3、x为浮点数,如下语句是否正确:

if (x == 0.0)

A、正确           B、错误

4、DSP的流水线冲突产生的原因是由于DSP运行速度不够快:

A、正确               B、错误

5、函数strlen("ASDFG\n")的值是7:

A、正确         B、错误

解析:/n为转义字符, 占一个字节,ASDFG为5个字节,strlen()计算字符串的长度时不会计算隐藏的/0,所以是5+1 = 6个

sizeof()会计算/0字符

6、对于宏定义描述,宏替换时先求出实参表达式的值,然后再代入形参运算求值。

A、正确                 B、错误

7、TCP/IP 是一组分层通信协议构成TCP/IP模型的四个层次是:

物理层、数据链路层、传输层和应用层

8、关于哈佛结构描述正确的是:程序存储与数据存储分离

9、下面哪个操作系统是嵌入式操作系统:

A、Red-hat  Linux         B、uCLinux        C、Ubuntu Linux        D、SUSE  Linux

10、设有一下说明和定义:

typedef union

{

long i;

int h[4];

char c;

}DATE;

struct data

{

int cat;

DATE cow;

float dog;

}too;

DATE max;

语句printf("%d",sizeof(struct data)+sizeof(max));的执行结果是:36

11、char str[] = {"helloword"}; int s = sizeof(str);  int l=strlen(str); 问s, l 的值分别为:10,9.

12、图像中存在孤立噪声点,下面滤波器中滤波效果最好的是:

A、高斯滤波             B、图像腐蚀           C、中值滤波        D、双边滤波

填空题:

13、常用的图像缩放算法有:最邻近插值滤波、线性插值滤波、拉格朗日滤波、高斯滤波等。

14、SVM常用的核函数有:线性核函数、高斯核函数、多项式核函数 、sigmoid核函数。

15、语句如下:

char str1[] = "123";

char str2[] ="123";

const char str3[] = "123";

const char str4[] = "123";

const char *str5[] = "123";

const char *str6[] = "123";

char *str7[] = "123";

char *str8[] = "123";

cout << (str1==str2) <<endl;

cout << (str3==str4) <<endl;

cout << (str5==str6) <<endl;

cout << (str7==str8) <<endl;

结果是:0 0 1 1 

16、只有在程序运行时才为auto存储类型register存储类型变量分配内存。

17、写一个标准宏MIN,这个宏输入两个参数返回较小的一个:

# define MIN(A,B)((A) <= (B) ? (A) : (B))

18、一副图像的分辨率是1280*720.需要对每一个像素点进行3*3的卷积操作,需要的乘法和加法各是多少个?(已经扩边)

加法:

乘法:

19、嵌入式编程中什么是大端什么是小端?

大端模式,是指数据的高位,保存在内存的低地址中,(而数据的低位,保存在内存的高地址中);

小端模式,是指数据的高位保存在内存的高地址中,(而数据的低位保存在内存的低地址中)。
编程题:

1、确定CPU是大端还是小端?

答案:python语言:

import sys
def IsBigLittle():
 if sys.byteorder=="little":
  print ("system is little");
 elif sys.byteorder=="big":
  print ("system is big-endien")
 else:
  print("unknow hardware type") 

2、求两个水平举行是否相交,相交的话输出相交的面积。

答案:

def if_intersection(xmin_a, xmax_a, ymin_a, ymax_a, xmin_b, xmax_b, ymin_b, ymax
_b):
    if_intersect = False
    # 通过四条if来查看两个方框是否有交集。如果四种状况都不存在,我们视为无交集
    if xmin_a < xmax_b <= xmax_a and (ymin_a < ymax_b <= ymax_a or ymin_a <= ymin_b < ymax_a):
        if_intersect = True
    elif xmin_a <= xmin_b < xmax_a and (ymin_a < ymax_b <= ymax_a or ymin_a <= ymin_b < ymax_a):
        if_intersect = True
    elif xmin_b < xmax_a <= xmax_b and (ymin_b < ymax_a <= ymax_b or ymin_b <= ymin_a < ymax_b):
        if_intersect = True
    elif xmin_b <= xmin_a < xmax_b and (ymin_b < ymax_a <= ymax_b or ymin_b <= ymin_a < ymax_b):
        if_intersect = True

    else:
        return False
    # 在有交集的情况下,我们通过大小关系整理两个方框各自的四个顶点, 通过它们得到交集面积
    if if_intersect == True:
        x_sorted_list = sorted([xmin_a, xmax_a, xmin_b, xmax_b])#from small to big number
        y_sorted_list = sorted([ymin_a, ymax_a, ymin_b, ymax_b])
        x_intersect_w = x_sorted_list[2] - x_sorted_list[1] 
        y_intersect_h = y_sorted_list[2] - y_sorted_list[1]
        area_inter = x_intersect_w * y_intersect_h
        return area_inter

猜你喜欢

转载自blog.csdn.net/qq_33690342/article/details/82153809