面试准备

2018-09-28  本文已影响0人  影醉阏轩窗

C++面试总结

  1. New、Delete和malloc、free的区别?

  1. New和Delete自动调用构造函数和析构函数

  1. 面向对象的三个特征?

  1. 对象和类之间的关系?

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

  1. static的作用

大华图像算法面试总结

  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.自己论文或者项目使用的算法细节

就是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 image

16.常用边缘检测算子

1.设计一个OCR引擎

1.数据预处理

1.图像表示几种方式

20.最大熵分割

21.OTSU阈值分割

22.均值迭代

3.区域生长

4.图像去雾

5.特征检测

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

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

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

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

6.畸变矫正模型

利用相机标定取纠正图像

7.相机标定

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

上一篇 下一篇

猜你喜欢

热点阅读