1. #include"cv.h" 
  2. #include"highgui.h" 
  3. #include<iostream> 
  4. using namespace std;  
  5. double focus(IplImage* image);  
  6. int main() { 
  7.  IplImage* previous1;  
  8. IplImage* previous2;  
  9. IplImage* previous3;  
  10. IplImage* previous4;  
  11.  previous1=cvLoadImage("e://temporary/test01.bmp",); 
  12.  previous2=cvLoadImage("e://temporary/test02.bmp",); 
  13.  previous3=cvLoadImage("e://temporary/test03.bmp",); 
  14.  previous4=cvLoadImage("e://temporary/test04.bmp",);  
  15.  if(previous1!=&&previous2!=&&previous3!=&&previous4!=) 
  16.  { 
  17.   cvNamedWindow("previous1",); 
  18.   cvShowImage("previous1",previous1);   cvNamedWindow("previous2",); 
  19.   cvShowImage("previous2",previous2);   cvNamedWindow("previous3",); 
  20.   cvShowImage("previous3",previous3);   cvNamedWindow("previous4",); 
  21.   cvShowImage("previous4",previous4);  
  22.   cout<<"The definition of the previous1 is: "<<focus(previous1)<<endl; 
  23.   cout<<"The definition of the previous2 is: "<<focus(previous2)<<endl; 
  24.   cout<<"The definition of the previous3 is: "<<focus(previous3)<<endl; 
  25.   cout<<"The definition of the previous4 is: "<<focus(previous4)<<endl; 
  26.   //关掉窗口,结束   cvWaitKey(0);  
  27.   cvDestroyWindow("previous1");  
  28.  cvReleaseImage(&previous1); 
  29.   cvDestroyWindow("previous2"); 
  30.   cvReleaseImage(&previous2);  
  31.  cvDestroyWindow("previous3");   
  32. cvReleaseImage(&previous3);  
  33.  cvDestroyWindow("previous4");   
  34. cvReleaseImage(&previous4);   return ;  } 
  35.  return -; 
  36. }  
  37. double focus(IplImage* image) { 
  38.  IplImage* picone=cvCreateImage(cvGetSize(image),,);  
  39.  cvCvtColor(image,picone,CV_BGR2YCrCb);  
  40.  CvScalar gety; 
  41.  double z=,zy1=,zy2=,total=;  double gety1=,gety2=;  double final=;  
  42.  for(int ix=;ix<(picone->height);ix++) 
  43.   { 
  44.    gety1=;   
  45.  gety2=;   
  46.  zy1=;   
  47.  zy2=;  
  48.    for(int jy=;jy<(picone->width);jy++) 
  49.    { 
  50.     gety=cvGet2D(picone,ix,jy); 
  51.     z=0.5*gety.val[]-gety1+0.5*gety2+zy1-0.5*zy2;   
  52.   total=total+z;     
  53. gety2=gety1; 
  54.     gety1=gety.val[];     zy2=zy1;     zy1=z;  
  55.   }  
  56. } 
  57.  cvReleaseImage(&picone); 
  58.  final=abs(total/((image->height)*(image->width)));  
  59.  return final; 
  60. }

基于opencv 的图片模糊判断代码的更多相关文章

  1. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理

    得知OpenCV有一段时间.除了研究的各种算法的内容.除了从备用,据导游书籍和资料,尝试结合链接的图像处理算法和日常生活,第一桌面上(随着摄像头)完成了一系列的视频流处理功能.开发平台Qt5.3.2+ ...

  2. 基于OpenCV实现对图片及视频中感兴趣区域颜色识别

    基于OpenCV实现图片及视频中选定区域颜色识别 近期,需要实现检测摄像头中指定坐标区域内的主体颜色,通过查阅大量相关的内容,最终实现代码及效果如下,具体的实现步骤在代码中都详细注释,代码还可以进一步 ...

  3. Asp.net 基于Cookie简易的权限判断

    基于Cookie简易的权限判断代码,需要的朋友可以参考下. 写入Cookie页面,创建cookie后,设置cookie属性,并添加到Response.Cookies中读取cookie,利用cookie ...

  4. 边缘检测︱基于 HED网络TensorFlow 和 OpenCV 实现图片边缘检测

    本文摘录自<手机端运行卷积神经网络的一次实践 – 基于 TensorFlow 和 OpenCV 实现文档检测功能> 只截取感兴趣 的片段. . 一.边缘检测 1.传统边缘检测 Google ...

  5. 基于OpenCv和swing的图片/视频展示Java实现

    基于OpenCv和swing实现图片/视频的展示 图片的展示 swing展示图片,多为操作BufferedImage,这里要关注的核心是将Mat转为BufferedImage. 代码如下: publi ...

  6. Java基于OpenCV实现走迷宫(图片+路线展示)

    Java基于OpenCV实现走迷宫(图片+路线展示) 由于疫情,待在家中,太过无聊.同学发了我张迷宫图片,让我走迷宫来缓解暴躁,于是乎就码了一个程序出来.特此记录. 原图: 这张图,由于不是非常清晰, ...

  7. 基于opencv图片切割

    基于opencv图片切割为n个3*3区块 工作原因,切割图片,任务急,暂留调通的源码,留以后用. package com.rosetta.image.test; import org.opencv.c ...

  8. 基于jQuery可悬停控制图片轮播代码

    基于jQuery可悬停控制图片轮播代码.这是一款可悬停切换全屏轮播jQuery幻灯片.效果图如下: 在线预览   源码下载 实现的代码: <!-- 轮播广告 --> <div id= ...

  9. 基于jQuery弹出层图片动画查看代码

    分享一款基于jQuery弹出层图片动画查看代码是一款鼠标单击文字或图片内容放大显示且含圆角投影效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=&q ...

随机推荐

  1. c++11 中的 move 与 forward

    [update: 关于左值右值的另一点总结,请参看这篇] 一. move 关于 lvaue 和 rvalue,在 c++11 以前存在一个有趣的现象:T&  指向 lvalue (左传引用), ...

  2. 华为OJ平台——杨辉三角的变形

    import java.util.Scanner; /** * 杨辉三角的变形 *第一行为1,后面每一行的一个数是其左上角到右上角的数的和,没有的记为0 * 1 * 1 1 1 * 1 2 3 2 1 ...

  3. MVC ueditor的使用(实现上传图片功能)

    之前使用ckeditor不能实现上传图片功能,只要是我不知道怎么使用啦o( ̄ε ̄*),然后就换了ueditor~~,可以实现上传图片功能啦~\(≧▽≦)/~~ 下面是我的步骤:去官网下载最新版uedi ...

  4. HDOJ1010(BFS)

    //为什么bfs不行呢,想不通 #include<cstdio>#include<cstring>#include<queue>using namespace st ...

  5. CSS 中 display:inline-block 属性使用详解

    本文详细描述了display:inline-block的基础知识,产生的问题和解决方法以及其常见的应用场景,加深了对inline-block应用的进一步理解. 基础知识 display:inline- ...

  6. README.md

    #gzq-h5app 本项目依赖于nodejs,请尽量安装最新版本. 需要先将Grunt命令行(CLI)安装到全局环境中.安装时可能需要使用sudo(针对OSX.*nix.BSD等系统中)权限或者作为 ...

  7. jQuery 遍历 - map() 方法

    定义和用法 map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象. 例子1: 构建表单中所有值的列表: <p><b>value为: &l ...

  8. 何时使用 Em 与 Rem

    原文  http://www.w3cplus.com/css/when-to-use-em-vs-rem.html   你可能已经很熟练使用这两个灵活的单位,但你可能不完全了解何时使用rem,何时使用 ...

  9. ★★★.NET 在meta标签中使用表达式设置页面的关键字

    在aspx文件中 给meta标签的属性复制是不能直接使用 表达式的 错误的写法: <meta name="keywords" content="<%=news ...

  10. rhythmbox插件开发笔记1:简介&入门

    rhythmbox是gnome下一款开源的音乐播放软件.ubuntu和fedora的桌面环境中均默认安装了rhythmbox. rhythmbox架构非常灵活,几乎所有地方都可以用插件来修改.用户想实 ...