dz旅游网站模板,网站上做百度广告赚钱么,360建筑网如何删除自己的信息,中锤音建设有限公司网站【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 做过isp的同学都知道#xff0c;图像处理里面有一个3A#xff0c;即自动曝光、自动白平衡和自动对焦。其中自动对焦这个#xff0c;就需要用输入…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 做过isp的同学都知道图像处理里面有一个3A即自动曝光、自动白平衡和自动对焦。其中自动对焦这个就需要用输入的图像清晰度作为反馈自动调整摄像头的焦距。这也是摄像头中唯一需要机械控制的部分。那怎么判断图像的清晰度这里面每个厂家都有自己的算法。今天我们学习的qmacvisual软件里面就自带了三个算法。 1、创建工程、创建流程 工程和流程是qmacvisual软件使用的第一步。 2、导入图像清晰度插件 图像清晰度插件它的位置位于【检测识别】下面。直接拖过来就可以使用。 整个插件中有两个地方需要配置。第一个是文件夹下面也就是说需要从文件夹下面挑选出清晰度最高的那张图片。整个文件夹大约100多张图片如果大家跟进去看的话就会发现图片是从模糊到清晰、再到模糊的状态。第二个是相关算法的配置目前有三个算法供选择分别是Tenengrad算法、Laplacian算法和SMD算法。选择好之后单击执行按钮就会看到清晰度最高的那个算法。此外还可以看出当前图片这个特征的最优值是多少。 3、算法实现原理 实现上面三个算法我们都可以找到对应的实现代码过程。不失一般性我们找到其中Laplacian梯度的实现过程
//使用Laplacian梯度法计算一幅图像的清晰度
double frmImageClarity::CalcClarityLaplacian(const cv::Mat src_mat)
{try{cv::Mat gray;if (src_mat.channels() 3){cv::cvtColor(src_mat, gray, cv::COLOR_BGR2GRAY);}else if (src_mat.channels() 4){cv::cvtColor(src_mat, gray, cv::COLOR_RGBA2GRAY);}else{src_mat.copyTo(gray);}cv::Mat imageLaplacian;cv::Laplacian(gray, imageLaplacian, CV_16U);//图像的平均灰度double meanValue 0.0;meanValue cv::mean(imageLaplacian)[0];return meanValue;}catch (...){return -1;}
} 整个过程实现还是比较简单的基本就三个步骤第一步灰度转换第二步Laplacian转换第三步求解平均灰度。计算下来就是哪张图片的灰度最高就是哪张图片最清晰。有兴趣的同学可以再去看看其他两种方法的实现过程。对于拍照不是很好或者有抖动的图片来说这种方法还是非常实用的。 4、其他两种算法的效果 我们看一下除了Tenengrad算法之外另外两种算法的执行效果是什么样的。需要注意的是不同的算法判断标准是不一样的所以左上角输出的数值可能是不一样的。