图片模糊度判断程序(C++、opencv)
//#include<opencv2\opencv.hpp>
//using namespace cv; #include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include "cv.h" using namespace cv;
using namespace std; double focus(IplImage* image); int main()
{
IplImage*previous1;
IplImage*previous2;
IplImage*previous3;
IplImage*previous4;
previous1 = cvLoadImage("D:/2222/1 (1).jpg", );
previous2 = cvLoadImage("D:/2222/1 (2).jpg", );
previous3 = cvLoadImage("D:/2222/1 (3).jpg", );
previous4 = cvLoadImage("D:/2222/1 (4).jpg", );
if (previous1 != && previous2 != && previous3 != && previous4 != ) {
cvNamedWindow("previous1", );
cvShowImage("previous1", previous1);
cvNamedWindow("previous2", );
cvShowImage("previous2", previous2);
cvNamedWindow("previous3", );
cvShowImage("previous3", previous3);
cvNamedWindow("previous4", );
cvShowImage("previous4", previous4);
cout << "The definition of the previous1 is: " << focus(previous1) << endl;
cout << "The definition of the previous2 is: " << focus(previous2) << endl;
cout << "The definition of the previous3 is: " << focus(previous3) << endl;
cout << "The definition of the previous4 is: " << focus(previous4) << endl; //关掉窗口,结束 cvWaitKey(0);
cvDestroyWindow("previous1");
cvReleaseImage(&previous1); cvDestroyWindow("previous2");
cvReleaseImage(&previous2);
cvDestroyWindow("previous3");
cvReleaseImage(&previous3);
cvDestroyWindow("previous4");
cvReleaseImage(&previous4);
return ;
}
return -; }
double focus(IplImage*image) {
IplImage*picone = cvCreateImage(cvGetSize(image), , );
cvCvtColor(image, picone, CV_BGR2YCrCb);
CvScalar gety;
double z = , zy1 = , zy2 = , total = ;
double gety1 = , gety2 = ;
double final = ;
for (int ix = ; ix < (picone->height); ix++) {
gety1 = ;
gety2 = ;
zy1 = ;
zy2 = ;
for (int jy = ; jy < (picone->width); jy++) {
gety = cvGet2D(picone, ix, jy);
z = 0.5*gety.val[] - gety1 + 0.5*gety2 + zy1 - 0.5*zy2;
total = total + z;
gety2 = gety1;
gety1 = gety.val[];
zy2 = zy1;
zy1 = z;
}
}
cvReleaseImage(&picone);
final = abs(total / ((image->height)*(image->width)));
return final;
}
图片模糊度判断程序(C++、opencv)的更多相关文章
- 批量改变图片的尺寸大小 python opencv
我目标文件夹下有一大批图片,我要把它转变为指定尺寸大小的图片,用pthon和opencv实现的. 以上为原图片. import cv2 import os # 按指定图像大小调整尺寸 def resi ...
- iOS 图片文件格式判断、圆角图片
1.圆角图片 // 设置圆形图片(放到分类中使用) - (UIImage *)cutCircleImage { UIGraphicsBeginImageContextWithOptions(self. ...
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)
#region//开机自动运行 private void CB_Auto_CheckedChanged(object sender, EventArgs e) {//CB_ ...
- 图片上传并显示(兼容ie),图片大小判断
图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...
- PHP图片上传程序(完整版)
从PHP100上搜刮来的,功能很强大.几乎考虑到了每个细节,与大家分享!~~~ <meta http-equiv="Content-Type" content="t ...
- C#调用Exe文件的方法及如何判断程序调用的exe已结束
很简单的代码就可以实现C#调用EXE文件,如下: 引入using System.Diagnostics; 调用代码: Process.Start(exe文件名); 或直接 System.Diagnos ...
- C#判断程序是否以管理员身份运行,否则以管理员身份重新打开
/// <summary> /// 判断程序是否是以管理员身份运行. /// </summary> public static bool IsRunAsAdmin() { Wi ...
- c语言_常见图片格式判断
c语言_常见图片格式判断 我想尽各种思路.今天,终于把图片判断搞定了. 在此,我写一下我的思路.希望对那些不想看代码的朋友们有帮助. 常风的的图片格式有:bmp,png,jpg,gif等图片格式. 我 ...
- 判断程序是否在VMWare内运行
现在有许多用户都喜欢用虚拟机来测试他们的软件,以避免对真实机器环境造成损害.但是在虚拟机中,有些功能是受限,甚至不可能完成的,因此,需要在程序中判断虚拟机的环境,如果程序在虚拟机内运行,则就要把虚拟机 ...
随机推荐
- jQuery中 wrap() wrapAll() 与 wrapInner()的区别
今晚看书的时候发现jQuery有三个包裹节点的方法,百度了一下jQuery wrap() / wrapAll() / wrapInner(),果然搜索结果 W3School的文档说明是排第一的. 可是 ...
- 在git 服务器挂载新的项目
1.cmd 到新创建的文件夹位置,然后 执行该命令git init --bare 2.在客户端克隆项目到文件夹(空),将项目复制到该空文件夹下,然后打开git extent,提交并推送
- Jquery 对象与 DOM对象的相互转换
在做 web 开发时,经常会用到 jquery 和 dom 对象, 有时候需要在这两个对象间进行切换. Jquery 对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuer ...
- HTML中解决双击会选中文本的问题
HTML中解决双击会选中文本的问题 <div unselectable="on" style="-moz-user-select:none;" onsel ...
- linux 下 jdk tar.gz 包安装方法
JDK安装 tar.gz为解压后就可使用的版本,这里我们将jdk-7u3-linux-i586.tar.gz解压到/usr/local/下. 1.解压 解压到当前目录:$ tar -zxvf /opt ...
- c++ 创建 socket server
下面一段代码是创建socket server的代码片段: 需要引用的库包括: #include <sys/types.h> #include <sys/socket.h> #i ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- Tomcat启动过程(二):EndPoint解析
EndPoint提供基础的网络IO服务,用来实现网络连接和控制,它是服务器对外I/O操作的接入点.主要任务是管理对外的socket连接,同时将建立好的socket连接交到合适的工作线程中去.里面两个主 ...
- Thinking about think-time functions
You will find yourself very familier to this topic. Ok, let me ask you one question: Let me know th ...
- C++求斐波那契数
题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1且n为整数) 如果写出菲氏数列,则应该是: 0 1 1 2 3 5 8 13 21 34 …… ...