检测原理:聚焦图像确实比离焦图像含有更多的信息,边缘更加锐利,细节信息更加丰富,同时高频信号变化也更加强烈;

聚焦评价算法的标准:

单峰性
无偏性
抗噪性
适应性
实时性

目前常用的聚焦评价算法:

1. 梯度函数;
2. 非梯度函数;

梯度函数的依据:

在图像处理中,梯度函数常被用来提取边缘信息,聚焦良好的图像,具有更尖锐的边缘,应有更大的梯度函数值。

代码如下:

#include<highgui.h>
#include<cv.h>
/*****************取图像的感兴趣部分*************************/
/************************************************************/
IplImage* imgROI(IplImage* image1)
{   IplImage* ImgROI=cvCreateImage(cvSize(260,228),8,1);//裁剪的矩形宽为260,矩形高为228。cvSetImageROI(image1,cvRect(140,92,260,228));cvCopy(image1,ImgROI);return ImgROI;
}
unsigned long Tenengrad_measure(IplImage *image3)
{unsigned long QQQ=0;for (int x = 0; x < image3->height; x++){uchar* ptr=(uchar*)(image3->imageData+x*image3->widthStep);for (int y = 1; y < image3->width; y++){//++sum;QQQ+=ptr[y];//++y;}  }return QQQ;
}
int main(int argc,char** argv)
{IplImage* imgSrc=cvLoadImage("E:\\工作\\工作1\\测试图片\\3#镜头测试图片\\USB2_CMOS_1.3M_FM(1)@CD130002153 20150906 154944481.bmp",1);cvSmooth(imgSrc,imgSrc,CV_GAUSSIAN,3,0,0,0);IplImage* imgGray=cvCreateImage(cvGetSize(imgSrc),imgSrc->depth,1);cvCvtColor(imgSrc,imgGray,CV_BGR2GRAY);IplImage* ImgROI=imgROI(imgGray);IplImage* imgSobel_1=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_16S,1);IplImage* imgSobel_2=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_16S,1);cvSobel(ImgROI,imgSobel_1,1,0,3);//一阶x方向的差分cvSobel(ImgROI,imgSobel_2,0,1,3);//一阶y方向的差分IplImage* imgSobel_11=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);IplImage* imgSobel_21=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);cvConvertScaleAbs(imgSobel_1,imgSobel_11,1,0);//算出GxcvConvertScaleAbs(imgSobel_2,imgSobel_21,1,0);//算出GyIplImage* imgSobel_12=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);IplImage* imgSobel_22=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);cvPow(imgSobel_11,imgSobel_12,2);//Gx的二次方cvPow(imgSobel_21,imgSobel_22,2);//Gy的二次方/**********Gx的平方+Gy的平方**************/IplImage* imgSobel=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);cvAddWeighted( imgSobel_12, 1, imgSobel_22, 1, 0, imgSobel );//addWeighted计算两个数组的加权和/****************Gx的平方+Gy的平方的结果开根号*******************///IplImage* imgSobell=cvCreateImage(cvGetSize(ImgROI),IPL_DEPTH_8U,1);//cvPow(imgSobel,imgSobell,0.5);//得出S(x,y)unsigned long QQQ=Tenengrad_measure(imgSobel);//算出最后的结果cvReleaseImage(&imgSrc);cvReleaseImage(&imgGray);cvReleaseImage(&ImgROI);cvReleaseImage(&imgSobel_1);cvReleaseImage(&imgSobel_2);cvReleaseImage(&imgSobel_11);cvReleaseImage(&imgSobel_21);cvReleaseImage(&imgSobel_12);cvReleaseImage(&imgSobel_22);cvReleaseImage(&imgSobel);system("pause");return 0;
}

不好意思:这是之前用C语言结合OpenCV写的,原理大概如此,如果有不明白的可以留言:

把最后的结果进行输出为QQQ,在试验中加一段连续读入图片的代码,QQQ的值越大,结果越清晰,时间有点久了,不知道还是不是这样的意思,若有错,请不吝赐教,小怪非常感谢。

图片清晰度“测量” 算法相关推荐

  1. NIMA 算法测试图片清晰度

    NIMA 算法测试图片清晰度 简介 该算法从两个不同的维度进行判断.首先是判断照片的质量等. 美观等主观方面,该算法也可以用来判断拍照水平.摄影爱好者可以用来提高自己的摄影水平. 如何检测图片 NIM ...

  2. OpenCV 图像清晰度评价算法(相机自动对焦)

    相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...

  3. 3行代码Python搞定图片清晰度识别,原来我们看到不一定是这样的

    在通常情况下,图片是否清晰是个感性认识,同一个图,有可能你觉得还过得去,而别人会觉得不清晰,缺乏一个统一的标准.然而有一些算法可以去量化图片的清晰度,做到有章可循. 原理 如果之前了解过信号处理,就会 ...

  4. 3行代码Python解决图片清晰度识别,原来我们看到的不一定是这样

    在通常情况下,图片是否清晰是个感性认识,同一个图,有可能你觉得还过得去,而别人会觉得不清晰,缺乏一个统一的标准.然而有一些算法可以去量化图片的清晰度,做到有章可循. 原理 如果之前了解过信号处理,就会 ...

  5. opencv java图片清晰度_OpenCV 图像清晰度评价(相机自动对焦)

    相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...

  6. 图片清晰度,分辨率,像素总结

    像素 像素是一个个小方块,是构成位图的基本单位.将图片放大即可看出来,如图: 分辨率 显示分辨率是指像素的总数量,如上图的2200×1400,也就是宽有2200个像素,高有1400个像素. 图像分辨率 ...

  7. 如何使用AI图片清晰度增强器软件增强和锐化图片、提高照片清晰度并去除噪点

    通过使用深度学习AI算法对照片进行批量锐化.去噪和去模糊处理,该程序可以应用再大部分照片和图片,包括徽标.卡通和动漫 可能很多朋友都会遇到需要批量增强和锐化照片的情况:例如,如果拍摄过程中曝光不足.夜 ...

  8. 用SRGAN提升图片清晰度(TensorFlow)

    近两年GAN(Generative Adversarial Network )相关的论文大火了一把,我自己也体验了几次,确实是很神奇的网络,GAN的各种变体基本都是用来生成图片的,关于GAN相关的说明 ...

  9. 如何在不影响图片清晰度的前提下放大照片?

    对于像素图而言,无损压缩的难度并不大.只要算法得当,就能在压缩体积的同时,尽可能多地保留细节. 而真正考验软件水平的,是图片无损放大.相信很多小伙伴也都知道,像素图是由若干个像素点组成的,放大后会模糊 ...

最新文章

  1. C 语言 sizeof 用法
  2. live2d模型_使用二次元模型动画人物让自己网站“骚起来”
  3. (推荐)叮当——中文语音对话机器人
  4. 科大讯飞2019年创下历史最佳业绩,员工涨薪27%,营收来源妥妥「安徽之光」
  5. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
  6. 管理员密码的php文件,ecshop网站后台管理员密码找回办法
  7. mysql导出数据字典6_MySQL利用Navicat导出数据字典
  8. Java的新项目学成在线笔记-day14(四)
  9. mysql恢复root用户_恢复MYSQL的root用户
  10. 很少使用“ ControlFlowException”
  11. mrc20温控f1什么意思_温控器的“总、高、低”是什么意思?不知道?民熔老电工告诉你...
  12. 码农你会搜“Win10 破解版”吗?
  13. html table渐变色,Safari浏览器中的渐变问题(给tr添加的渐变效果作用在了td上)...
  14. python编程手机模拟点击_python模拟点击玩游戏的实例讲解
  15. python machinelearning下载_Python与机器学习系列1:Anaconda的下载与安装
  16. 看看别人后端API接口写得,那叫一个优雅!
  17. 【游戏开发3D数学笔记】1.有话说在前面
  18. 插桩 java_“插桩”式技术
  19. vue综合实例——音乐播放器(悦听player)
  20. linux拷贝文件夹下所有文件

热门文章

  1. 【数学建模+数据处理类】2021数学建模国赛B题 乙醇偶合制备C4烯烃
  2. 微信小程序+.NET(八) 小程序之web-view讲解
  3. 教你用软碟通(UltraISO)刻录系统光盘
  4. 为什么B站中的弹幕可以不遮挡人物
  5. C++学习(一一二)代码review是什么
  6. Flex布局下,如何让最后一项靠右
  7. AICPA CIMA四季度调查:超一半美国企业高管认为美国经济陷入衰退
  8. 2022全国职业技能大赛“信息安全管理与评估“--应急响应日志分析解析(高职组)
  9. c语言计算年月日时分秒程序,C语言入门级代码 获取当前系统的年月日时分秒
  10. Map案例总结-斗地主案例