基於opencv 的圖片模糊判斷代碼

来源:http://www.cnblogs.com/zangdalei/archive/2016/03/28/5329434.html
-Advertisement-
Play Games

...


 

#include"cv.h" 
#include"highgui.h" 
#include<iostream> 
using namespace std;  
double focus(IplImage* image);  
int main() { 
 IplImage* previous1;  
IplImage* previous2;  
IplImage* previous3;  
IplImage* previous4;  
 previous1=cvLoadImage("e://temporary/test01.bmp",1); 
 previous2=cvLoadImage("e://temporary/test02.bmp",1); 
 previous3=cvLoadImage("e://temporary/test03.bmp",1); 
 previous4=cvLoadImage("e://temporary/test04.bmp",1);  
 if(previous1!=0&&previous2!=0&&previous3!=0&&previous4!=0) 
 { 
  cvNamedWindow("previous1",1); 
  cvShowImage("previous1",previous1);   cvNamedWindow("previous2",1); 
  cvShowImage("previous2",previous2);   cvNamedWindow("previous3",1); 
  cvShowImage("previous3",previous3);   cvNamedWindow("previous4",1); 
  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 0;  } 
 return -1; 
}  
double focus(IplImage* image) { 
 IplImage* picone=cvCreateImage(cvGetSize(image),8,3);  
 cvCvtColor(image,picone,CV_BGR2YCrCb);  
 CvScalar gety; 
 double z=0,zy1=0,zy2=0,total=0;  double gety1=0,gety2=0;  double final=0;  
 for(int ix=0;ix<(picone->height);ix++) 
  { 
   gety1=0;   
 gety2=0;   
 zy1=0;   
 zy2=0;  
   for(int jy=0;jy<(picone->width);jy++) 
   { 
    gety=cvGet2D(picone,ix,jy); 
    z=0.5*gety.val[0]-gety1+0.5*gety2+zy1-0.5*zy2;   
  total=total+z;     
gety2=gety1; 
    gety1=gety.val[0];     zy2=zy1;     zy1=z;  
  }  
} 
 cvReleaseImage(&picone); 
 final=abs(total/((image->height)*(image->width)));  
 return final; 
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Julia中文教程資源.txt 2016年3月28日 05:18:32 codegay 本文更新在這裡: https://github.com/FGFW/julia science and technology 官方的資料總是少不了需要自己去看的. julia 英文手冊 http://docs.ju ...
  • 繼續上一章所講,上一章我們最後面說道,雖然這個是很小的程式,但還有好幾個要優化的地方。先複製一下老的view.py代碼。 其中驗證token的方法,已經重疊了,python教我們,永遠不要重覆自己的代碼,這是很醜陋的行為。今天我們把它換成一個裝飾器,然後再把redis調整一下,看看代碼會不會簡潔很多 ...
  • 最近折騰微信掃碼支付,看了微信官方文檔,找了很多網頁,發現和文檔/demo不匹配,現在自己算是弄出來了(文件名稱有所更改),貼出來分享一下 一.將有用的官方lib文件和使用的相關文件放置到vendor當中 二.調用同一支付介面 WechatController ...
  • 原址:http://blog.chedushi.com/archives/7258 最近在用 xlrd 寫一個題庫自動導出的程式,但碰到一個比較 ugly 的問題。 程式要求是將 xls 文件中的數據導出成文本,但 xlrd 在讀取數據時,會將 xls 單元格中所有可能是數字的數據都自動轉換成 py ...
  • 代碼: 中間就遇見一個問題很讓我糾結,就是xlrd 在讀取數據時,會將 xls 單元格中所有可能是數字的數據都自動轉換成 python 的 float。這時候,我們通過 str(cell.value) 會得到 12.0 (假設 cell.value = 12.0)。 解決辦法:比如我的a=1,那麼x ...
  • 2015老男孩Python培訓第八期視頻教程,希望您通過本教程的學習,能學會常用方法和技巧。教程從基礎知識開始講解一直到後期的案例實戰,完全零基礎學習,從初學者的角度探討分析問題,循序漸進由易到難,確保每一位初學者都能融會貫通。從零基礎到開發的大神,您只要兩個字——堅持!屌絲逆襲模式已經開啟,各位小 ...
  • 繼上一篇【Python數據分析】Python3操作Excel-以豆瓣圖書Top250為例 對豆瓣圖書Top250進行爬取以後,鑒於還有一些問題沒有解決,所以進行了進一步的交流討論,這期間得到了一隻尼瑪的幫助與啟發,十分感謝! 上次存在的問題如下: 1.寫入不能繼續的問題 2.在Python IDLE ...
  • 小Alan在最近的開發中遇到了敏感詞過濾,便去網上查閱了很多敏感詞過濾的資料,在這裡也和大家分享一下自己的理解。 在寫之前,小Alan給大家推薦一篇來自http://cmsblogs.com/?p=1031的博文,也會參考部分內容來描述博文。 敏感詞過濾應該是不用給大家過多的解釋吧?講白了就是你在項 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...