图片清晰度“测量” 算法
检测原理:聚焦图像确实比离焦图像含有更多的信息,边缘更加锐利,细节信息更加丰富,同时高频信号变化也更加强烈;
聚焦评价算法的标准:
目前常用的聚焦评价算法:
梯度函数的依据:
在图像处理中,梯度函数常被用来提取边缘信息,聚焦良好的图像,具有更尖锐的边缘,应有更大的梯度函数值。
代码如下:
#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的值越大,结果越清晰,时间有点久了,不知道还是不是这样的意思,若有错,请不吝赐教,小怪非常感谢。
图片清晰度“测量” 算法相关推荐
- NIMA 算法测试图片清晰度
NIMA 算法测试图片清晰度 简介 该算法从两个不同的维度进行判断.首先是判断照片的质量等. 美观等主观方面,该算法也可以用来判断拍照水平.摄影爱好者可以用来提高自己的摄影水平. 如何检测图片 NIM ...
- OpenCV 图像清晰度评价算法(相机自动对焦)
相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...
- 3行代码Python搞定图片清晰度识别,原来我们看到不一定是这样的
在通常情况下,图片是否清晰是个感性认识,同一个图,有可能你觉得还过得去,而别人会觉得不清晰,缺乏一个统一的标准.然而有一些算法可以去量化图片的清晰度,做到有章可循. 原理 如果之前了解过信号处理,就会 ...
- 3行代码Python解决图片清晰度识别,原来我们看到的不一定是这样
在通常情况下,图片是否清晰是个感性认识,同一个图,有可能你觉得还过得去,而别人会觉得不清晰,缺乏一个统一的标准.然而有一些算法可以去量化图片的清晰度,做到有章可循. 原理 如果之前了解过信号处理,就会 ...
- opencv java图片清晰度_OpenCV 图像清晰度评价(相机自动对焦)
相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...
- 图片清晰度,分辨率,像素总结
像素 像素是一个个小方块,是构成位图的基本单位.将图片放大即可看出来,如图: 分辨率 显示分辨率是指像素的总数量,如上图的2200×1400,也就是宽有2200个像素,高有1400个像素. 图像分辨率 ...
- 如何使用AI图片清晰度增强器软件增强和锐化图片、提高照片清晰度并去除噪点
通过使用深度学习AI算法对照片进行批量锐化.去噪和去模糊处理,该程序可以应用再大部分照片和图片,包括徽标.卡通和动漫 可能很多朋友都会遇到需要批量增强和锐化照片的情况:例如,如果拍摄过程中曝光不足.夜 ...
- 用SRGAN提升图片清晰度(TensorFlow)
近两年GAN(Generative Adversarial Network )相关的论文大火了一把,我自己也体验了几次,确实是很神奇的网络,GAN的各种变体基本都是用来生成图片的,关于GAN相关的说明 ...
- 如何在不影响图片清晰度的前提下放大照片?
对于像素图而言,无损压缩的难度并不大.只要算法得当,就能在压缩体积的同时,尽可能多地保留细节. 而真正考验软件水平的,是图片无损放大.相信很多小伙伴也都知道,像素图是由若干个像素点组成的,放大后会模糊 ...
最新文章
- C 语言 sizeof 用法
- live2d模型_使用二次元模型动画人物让自己网站“骚起来”
- (推荐)叮当——中文语音对话机器人
- 科大讯飞2019年创下历史最佳业绩,员工涨薪27%,营收来源妥妥「安徽之光」
- 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
- 管理员密码的php文件,ecshop网站后台管理员密码找回办法
- mysql导出数据字典6_MySQL利用Navicat导出数据字典
- Java的新项目学成在线笔记-day14(四)
- mysql恢复root用户_恢复MYSQL的root用户
- 很少使用“ ControlFlowException”
- mrc20温控f1什么意思_温控器的“总、高、低”是什么意思?不知道?民熔老电工告诉你...
- 码农你会搜“Win10 破解版”吗?
- html table渐变色,Safari浏览器中的渐变问题(给tr添加的渐变效果作用在了td上)...
- python编程手机模拟点击_python模拟点击玩游戏的实例讲解
- python machinelearning下载_Python与机器学习系列1:Anaconda的下载与安装
- 看看别人后端API接口写得,那叫一个优雅!
- 【游戏开发3D数学笔记】1.有话说在前面
- 插桩 java_“插桩”式技术
- vue综合实例——音乐播放器(悦听player)
- linux拷贝文件夹下所有文件
热门文章
- 【数学建模+数据处理类】2021数学建模国赛B题 乙醇偶合制备C4烯烃
- 微信小程序+.NET(八) 小程序之web-view讲解
- 教你用软碟通(UltraISO)刻录系统光盘
- 为什么B站中的弹幕可以不遮挡人物
- C++学习(一一二)代码review是什么
- Flex布局下,如何让最后一项靠右
- AICPA CIMA四季度调查:超一半美国企业高管认为美国经济陷入衰退
- 2022全国职业技能大赛“信息安全管理与评估“--应急响应日志分析解析(高职组)
- c语言计算年月日时分秒程序,C语言入门级代码 获取当前系统的年月日时分秒
- Map案例总结-斗地主案例