面试准备

C++面试总结

  1. New、Delete和malloc、free的区别?
  • New和Delete自动调用<u>构造函数</u>和<u>析构函数</u>
  • 前者是<u>运算符</u>,后者是<u>函数</u>

  1. New和Delete自动调用构造函数和析构函数
  • Delete调用<u>一次</u>析构函数,Delete []调用<u>多次</u>析构函数
  • Delete针对new,Delete []针对New []

  1. 面向对象的三个特征?
  • <u>封装</u>:将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。
  • <u>继承</u>:指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。
  • <u>多态</u>:当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。

  1. 对象和类之间的关系?
  • 对象:一个实际概念(实物)
  • 类:一个抽象概念(类型或属性)
  • 类的实例化生成对象,对象的抽象化生成类
  • 一个对象可以包含多个类,一个类只能对应一个实例对象

  1. 动态空间申请使用New和不使用
  • New:

    创建需要指针接收,一处初始化,多处使用

    销毁需要使用Delete

    创建在<u>堆空间</u>,使用广泛可作为参数和返回值

    频繁调用不适合New,一边作为全局变量使用

  • 不使用New:

    栈空间申请内存

    频繁调用使用


  1. static的作用
  • 在函数内被定义之后数值保持不变
  • 模块内函数外,表示本地全局
  • 修饰函数,智能在本地调用,并且使用extern也不能跨文件调用
  • 类内定义static,只能在类外初始化,不能在类内初始化
  • 不能使用this调用,因为属于当前文件而不是属于当前类

大华图像算法面试总结

  1. opencv各种滤波?
  • 限幅滤波:

设置一个Thred,设本次采样值为V1,上一次采样为V

V1 = abs(V1-V)>Thred ? V:V1

差值大于阈值就等于上一次采样,否则等于自身

  • 均值滤波:

平均值代替当前值

void meanFilter (unsigned char* corrupted, unsigned char* smooth, int width, int height)  
{            
    memcpy ( smooth, corrupted, width*height*sizeof(unsigned char) );            
    for (int j=1;j<height-1;j++)      
    {          
        for (int i=1;i<width-1;i++)          
        {              
            smooth [ j*width+i ] = (    corrupted [ (j-1)*width+(i-1) ] + 
                                    corrupted [ (j-1)*width+i] + 
            corrupted [ (j-1)*width+(i+1) ] +                                          
            corrupted [ j*width+(i-1) ]     + corrupted [ j*width+i]     + 
            corrupted [ j*width+(i+1) ] +                                          
            corrupted [ (j+1)*width+(i-1) ] + corrupted [ (j+1)*width+i] + 
            corrupted [ (j+1)*width+(i+1) ] ) / 9;          
        }      
    }  
}  
  • 中值滤波

中位数的值代替当前值

void medianFilter (unsigned char* corrupted, unsigned char* smooth, int width, int height)
{   
    memcpy ( smooth, corrupted, width*height*sizeof(unsigned char) );
    for (int j=1;j<height-1;j++)
    {
        for (int i=1;i<width-1;i++)
        {
            char num[9];
            int k = 0;
            unsigned char window[9];
            for (int jj = j - 1; jj < j + 2; ++jj)
                for (int ii = i - 1; ii < i + 2; ++ii)
                    num[i+j]=corrupted[j+i*width];
            sort(num,num+9);//sort函数可以自己重写
            smooth[ j*width+i ] = num[4];
        }
    }
}
  • 混合中值滤波

取上下左右拐角点+当前值得到中值V1

取上下左右+中间值得到中值V2

当前值V

V、V1、V2取中值

  • 高斯滤波

取高斯模板去滤波

  • 卡尔曼滤波

核心是使用正太分布,利用估计的正太分布和确定的正态分布去计算当前的正太分布

  • 双边滤波

值域核函数+空间域核函数

[图片上传失败...(image-af0ebc-1538147338568)]

[图片上传失败...(image-ceb5e8-1538147338568)]

[图片上传失败...(image-ce4b77-1538147338568)]

1.SVM推导实现

2.项目改进和遗憾?

3.编写高通滤波器和直方图均衡化?

4.自己论文或者项目使用的算法细节

  • Gabor滤波器

就是sin()函数和傅里叶函数的乘积
波长:3, 6
方向:0, 45,90 , 135
空间纵横比:0.5
带宽:高斯方差:2pi

  • 灰度共生矩阵

灰度级量化0-15
四个特征:能量、熵、逆方差、相关性
特征可视化:使用5X5,步长为1的掩膜,计算5X5的特征

5.坏点检测算法

类型:亮点、暗点与色点三类
特点:比周围点亮很多的坏点 、比周围点暗很多的坏点、没有提供一个正确的像素值,但是并没有比周围点特别亮或者特别暗的像素
坏点和噪点的区别:噪点不确定性,坏点是固定的,颜色不确定
检测坏点:avg=sum(*),dif=(次max点 - 次min点),范围avg±dif,出了这个范围即定义为坏点
连续多帧判断,如果50%以上都出现这样的情况,就判断为坏点,否则为噪点,使用中值滤波去除。

1.相机防抖

  • 运动估计,找出最优运动向量

(a) 灰度投影法

(b) 块匹配法

(c) 位平面匹配法

(d) 边缘匹配法

(e) 特征点匹配法

主要思想是这样的:在第一帧图像中选择一块特征明显的纹理Patch,然后在随后的每一帧图像中找到与该纹理Patch最相似的Patch,然后将找到的Patch“钉”到第一帧Patch的所在位置上。

  • 运动补偿,根据运动向量补偿当前帧,去除抖动。

利用陀螺仪找到核函数,然后进行透视变换

1.图像降噪

  1. 图像增强
  1. 图像融合匹配
  1. 自动曝光
  1. 自动白平衡
  1. 自动对焦

15.常用插值方法

  • 最近插值:
image
  • 双线性插值:

    假设已知点Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2)Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),并且假设图像中每个像素点服从一个未知函数ff,使得像素值R11=f(Q11)R11=f(Q11),以此类推。那么如何求出点P=(x,y)P=(x,y)的像素值RPRP呢?首先做两次线性插值,分别求出点R1=(x,y1)R1=(x,y1)和点R2=(x,y2)R2=(x,y2)的像素值,然后再用这两个点再做一次线性插值,就可以求出点P=(x,y)P=(x,y)的像素值了。

    其中opencv进行了代码优化

    • 取消float为int
    • 原图像和目标图像对齐
image
  • 立方卷积插值:

    权值计算方法使用三次多项式4X4个点

    img

16.常用边缘检测算子

1.设计一个OCR引擎

  • 版面分析:
  • 预处理:
  • 行列分割:
  • 字符识别:
  • 矫正识别结果:

1.数据预处理

  • 去均值:
  • 归一化:
  • PCA降维度、白化(维度归一化):

1.图像表示几种方式

  • 真彩色:RGB表示
  • 假彩色:不同波段的色彩表示(YUV)
  • 伪彩色:灰度到RGB的映射

20.最大熵分割

  • 设定一个阈值T,分割背景A和目标B
  • 分别计算A和B的熵
  • MAX(H(A)+H(B))
  • 其中H = -P(i)*logP(i) \ \ \ i=i,2...T

21.OTSU阈值分割

  • 设定一个阈值T,分割背景A和目标B
  • 计算方差\delta^{2} = w_{a} * (\mu_{a}-\mu)^{2} + w_{a} * (\mu_{a}-\mu)^{2}
  • \mu_{a}: \mbox{背景A的均值} , \mu_{b}: \mbox{目标B的均值} , \mu_{}: \mbox{全部图像的均值}
  • w_{a}:\mbox{背景A的概率},以此类推。。。

22.均值迭代

  • 设定阈值T,背景A和目标B
  • 计算A、B均值:\mu_{a} 、 \mu_{b}
  • 更新阈值T_{1} = \frac{\mu_{a}+\mu_{b}}{2}
  • abs(T{}-T_{1})<\psi

3.区域生长

  • 给定一个种子点
  • 使用Vector数据结构
  • 使用八领域进行判断标准
  • 不断迭代vector.push()和vector.pop()

4.图像去雾

5.特征检测

  • SIFT检测

差分高斯金字塔(高斯模糊->LOG->DOG)
空间极值点检测(多尺度检测->泰勒二阶展开->Hessian矩阵)
特征描述子(确定半径->角度划分为八个方向0-45-90-135...->描述区域设置为4X4->最终描述为4X4X8)

  • (a)在高斯模糊的时候可以采用分离高斯卷积,这样可以更好的保留边缘细节。
  • SURF检测

构建高斯金字塔(图像大小不会变化,相同层核系数不同,不同层核大小不同)
特征点检测(二阶高斯使用盒滤波器代替计算Hessian矩阵)
特征描述子(利用Harr小波特征计算描述子,利用积分图计算Harr小波,4X4X4)
特征点匹配(不仅计算欧氏距离,还增加了一个Hessian矩阵的迹,如果方向相反则一定不匹配)

  • Harris角点

利用滑动窗口
使用一阶泰勒公式展开,然后计算矩阵的特征值

6.畸变矫正模型

利用相机标定取纠正图像

7.相机标定

图像坐标系到像素坐标系(仿射变换)
[图片上传失败...(image-d6f652-1538214340234)]
相机坐标系到图像坐标系(透视变换)
[图片上传失败...(image-4b7efb-1538214340234)]
世界坐标系到相机坐标系(刚体变换)
[图片上传失败...(image-d90adc-1538214340234)]
畸变:径向畸变、切向畸变
[图片上传失败...(image-999faf-1538214340234)]
[图片上传失败...(image-dd9b20-1538214340234)]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351