//#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)的更多相关文章

  1. 批量改变图片的尺寸大小 python opencv

    我目标文件夹下有一大批图片,我要把它转变为指定尺寸大小的图片,用pthon和opencv实现的. 以上为原图片. import cv2 import os # 按指定图像大小调整尺寸 def resi ...

  2. iOS 图片文件格式判断、圆角图片

    1.圆角图片 // 设置圆形图片(放到分类中使用) - (UIImage *)cutCircleImage { UIGraphicsBeginImageContextWithOptions(self. ...

  3. C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)

    #region//开机自动运行        private void CB_Auto_CheckedChanged(object sender, EventArgs e)        {//CB_ ...

  4. 图片上传并显示(兼容ie),图片大小判断

    图片上传并显示(兼容ie),图片大小判断 HTML <div id="swf" style="margin: 0 auto;text-align: center;& ...

  5. PHP图片上传程序(完整版)

    从PHP100上搜刮来的,功能很强大.几乎考虑到了每个细节,与大家分享!~~~ <meta http-equiv="Content-Type" content="t ...

  6. C#调用Exe文件的方法及如何判断程序调用的exe已结束

    很简单的代码就可以实现C#调用EXE文件,如下: 引入using System.Diagnostics; 调用代码: Process.Start(exe文件名); 或直接 System.Diagnos ...

  7. C#判断程序是否以管理员身份运行,否则以管理员身份重新打开

    /// <summary> /// 判断程序是否是以管理员身份运行. /// </summary> public static bool IsRunAsAdmin() { Wi ...

  8. c语言_常见图片格式判断

    c语言_常见图片格式判断 我想尽各种思路.今天,终于把图片判断搞定了. 在此,我写一下我的思路.希望对那些不想看代码的朋友们有帮助. 常风的的图片格式有:bmp,png,jpg,gif等图片格式. 我 ...

  9. 判断程序是否在VMWare内运行

    现在有许多用户都喜欢用虚拟机来测试他们的软件,以避免对真实机器环境造成损害.但是在虚拟机中,有些功能是受限,甚至不可能完成的,因此,需要在程序中判断虚拟机的环境,如果程序在虚拟机内运行,则就要把虚拟机 ...

随机推荐

  1. Windows Server 2008修改远程桌面连接数

    服务器安装了Windows Server 2008,现在要增加远程连接,开启服务器上的远程桌面连接,使用管理员账户远程登录.默认情况下Windows Server 2008允许一个连接数,一个账号最大 ...

  2. 洛谷P1984 SDOI2008烧水问题

    P1984 [SDOI2008]烧水问题 186通过 438提交 题目提供者lych 标签数论(数学相关)模拟各省省选 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 求助! 也是醉了... ...

  3. [JFinal 1] JFinal和SSH中使用拦截器的对比

    导读:先前在做.NET项目时,拦截的功能主要是依靠缓存session来实现.当需要跳转到某个页面,使用某个功能查询一些数据时,会根据session中的用户值来判断是否已经正常登录,如果没有,则重定向到 ...

  4. StackExchange.Redis使用和封装小试

    StackExchange.Redis使用和封装小试 https://git.oschina.net/Ultralisk/ThorActor/blob/ThorActor/DBUtility/Redi ...

  5. 一、Struts2的概述

    一.Struts2概述 是什么? Struts2是一个M(模型---域--范围模型)V(View视图)C(控制器)框架(模型2).框架都是一个半成品.提高开发效率. Struts1是一个MVC框架,非 ...

  6. eclipse 中maven项目右键没有maven菜单问题

    修改项目.project文件,确保有maven2Builder和maven2Nature2个标签: <?xml version="1.0" encoding="UT ...

  7. 返回json格式时间,解析时间

    传入:Json格式的时间 JS如下: yyyy-M(MM)-d(dd) H(HH):m(mm):s(ss) function timeStamp2String(time) { var data=tim ...

  8. Java 中的构造方法

    首先创建一个Transport类,定义好类的属性和方法,并且写好构造方法,先看下无参数的构造方法: public class Transport { //名字 public String name; ...

  9. php header 函数详解

    网页的缓存是由 HTTP消息头中的“Cache-control”来控制的,常见的取值有private.no-cache.max-age.must- revalidate等,默认为private.其作用 ...

  10. Delphi For Android 开发笔记 1 - 开发工具介绍

    在开始前,推荐喜欢delphi或者pascal的朋友,如果想将原来Windows的软件工程移植到Android,可使用CodeTyphon+Delphi XE7进行开发. 1.CodeTyphon C ...