首页 > 代码库 > [OpenCV]1 体验OpenCV

[OpenCV]1 体验OpenCV

<span style="font-size:18px;">#include "highgui.h"int main(int argc,char** argv){     IplImage* img=cvLoadImage(argv[1]);     cvNamedWindow("Test1",CV_WINDOW_AUTOSIZE);     cvShowImage("Test1",img);     cvWaitKey(0);     cvReleaseImage(&img);     cvDestoryWindow("Test1");}</span>

如果是完完全全的OpenCV初学者的话也许argv[1]会让人感到困惑,其实这里也可以用Linux地址来代替的,记得多用一个"\",因为需要转义。cvLoadImage()函数是一个高层调用接口,它通过文件名来确定加载文件的格式,并且该函数将自动分配图像数据结构所需的内存。

#include<cv.h>#include<highgui.h>void my_mouse_callback(int event, int x, int y, int flags, void* param);CvRect box;bool drawing_box = false;void draw_box(IplImage* img, CvRect rect){	cvRectangle(img, 		cvPoint(box.x, box.y), 		cvPoint(box.x + box.width, box.y + box.height),		cvScalar(0xff, 0x00, 0x00));}int main(int argc, char* argv[]){	box = cvRect(-1, -1, 0, 0);	IplImage* image = cvCreateImage(		cvSize(200, 200),		IPL_DEPTH_8U,		3);	cvZero(image);	IplImage* temp = cvCloneImage(image);	cvNamedWindow("Box Example");	cvSetMouseCallback("Box Example",		my_mouse_callback,		(void*)image);	while (1)	{		cvCopyImage(image, temp);		if (drawing_box)			draw_box(temp, box);		cvShowImage("Box Example", temp);		if (cvWaitKey(15) == 27)			break;	}	cvReleaseImage(&image);	cvReleaseImage(&temp);	cvDestroyWindow("Box Example");}void my_mouse_callback(int event, int x, int y, int flags, void* param){	IplImage* image = (IplImage*)param;	switch (event)	{	case CV_EVENT_MOUSEMOVE:	{		if (drawing_box)		{			box.width = x - box.x;			box.height = y - box.y;		}	}		break;	case CV_EVENT_LBUTTONDOWN:	{		drawing_box = true;		box = cvRect(x, y, 0, 0);	}		break;	case CV_EVENT_LBUTTONUP:	{		drawing_box = false;		if (box.width < 0)		{			box.x += box.width;			box.width *= -1;		}		if (box.height<0)		{			box.y += box.height;			box.height *= -1;		}		draw_box(image, box);	}		break;	}}
</pre></p><p></p><p><span style="font-size:18px;">HighGUI中创建滑动条的函数如下,前2个参数分别指定了滑动条的名字以及滑动条附属窗口的名字。随后的两个参数之一为value,它是一个整形指针,当滑动条被拖动时,OpenCV会自动将当前位置所代表的值传给指针指向的整数,另外一个参数count是一个整数值,为滑动条所能表示的最大值。最后一个参数是一个指向回掉函数的指针,当滑动条被拖动时,回掉函数会自动被调用。这跟鼠标事件的函数实现类似。回掉函数必须为CvTrackbarCallback格式。</span></p><span style="font-size:18px;"></span><pre class="cpp" name="code">int cvCreateTrackbar(  const char* trackbar_name,   const char* window_name,   int* value,   int   count,   CvTrackerCallback  on_change);
void (*callback) (int position)
int cvGetTrackbarPos(    const char* trackbar_name,    const char* window_name);void cvSetTrackbarPos(    const char* trackbar_name,    const char* window_name,    int pos);

 

 

 

 

 

 

这两个函数可以用在程序的任何地方来读取或设置滑动条的值。

http://download.csdn.net/detail/u013589223/8191881

http://download.csdn.net/detail/u013589223/8191893

以上是配置好的OpenCV属性表,欢迎下载。


 

 

[OpenCV]1 体验OpenCV