OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++, так же разрабатывается для Python, Ruby, Matlab и других языков[1]. Может свободно использоваться в академических и коммерческих целях — распространяется в условиях лицензии BSD.
#include "stdio.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
char name0[] = "lena.jpg";
char name1[] = "fruits.jpg";
int main()
{
IplImage* img1 = NULL;
IplImage* img2 = NULL;
//cvNamedWindow("Image", 1);
//load original image
img1 = cvLoadImage(name0,1);
img2 = cvLoadImage(name1,1);
//cvUseOptimized(1); // load IPP
//How to check whether IPP is used or not?
const char* plugin_info = 0;
DWORD sm1, sm2, sm3;
int Count = 100;
printf("== Test for resizing images in OpenCV with IPP ==\n");
for (int j=0; j<2; j++ ) {
if (j == 1)
cvUseOptimized(0); unload IPP
cvGetModuleInfo(0,0,&plugin_info);
bool ipp_is_used = plugin_info != 0 && strstr(plugin_info,"ipp")!=0;
sm1=GetTickCount();
for (int i=0; iwidth*2.55) ,
(img1->height*3.77)), img1->depth, img1->nChannels);
newImage2 = cvCreateImage(cvSize((img2 - >width*2.55) ,
(img2->height*3.77)), img2->depth, img2->nChannels);
cvResize(img1, newImage1);
cvResize(img2, newImage2);
//
cvReleaseImage(&newImage1);
cvReleaseImage(&newImage2);
}
sm2=GetTickCount();
sm3 = sm2 - sm1;
if (ipp_is_used)
printf("* IPP is used\n");
else
printf("* IPP is not used! \n");
printf("* Iteration resize = %d \n", Count);
DWORD m, s, ms;
m = sm3 / 60000;
s = (sm3 - m*60000) /1000;
ms = (sm3 - (m*60000)-(s*1000));
printf("* Time - %d min %d sec %d msec \n",(int)(m), (int)s, (int)ms);
printf("=================================================\n");
}
cvReleaseImage(&img1);
cvReleaseImage(&img2);
printf("Press any key ...");
getchar();
//cvShowImage("Image", newImage1);
cvWaitKey(0);
//cvDestroyWindow( "Image" );
return 0;
}
Литература:
Bradsky G., Kaehler A. Learning OpenCV - O'Reilly, 2008. - C. 1 - ISBN 978-0-596-51613-0