//#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", 1);
previous2 = cvLoadImage("D:/2222/1 (2).jpg", 1);
previous3 = cvLoadImage("D:/2222/1 (3).jpg", 1);
previous4 = cvLoadImage("D:/2222/1 (4).jpg", 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;
}
原文链接: https://www.cnblogs.com/zangdalei/p/5339353.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/231114
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!