Opencv--鼠标获取图像坐标

很多情况下,我们在进行图像处理时,都想看一下某一个点的像素坐标或者是颜色信息。

这有助于验证我们对图像算法的可靠性。本篇博文给出了在opencv中使用鼠标获取图像的位置信息和颜色信息。

开发环境为VC6.0、OpenCv1.0.

这里主要用到了鼠标的属性:

void mouseHandler(int event, int x,int y ,int flags,void *p)
{
	IplImage *img0, *img1;
	img0 = (IplImage*)p;
	img1 = cvCloneImage(img0);
	CvFont font, font2;
	uchar *ptr;
	char label[1000];
	char label2[1000];
	cvInitFont (&font,CV_FONT_HERSHEY_PLAIN,1,1,0,1,1);
	cvInitFont (&font2,CV_FONT_HERSHEY_PLAIN,1,1,0,1,1);
	if(event==CV_EVENT_LBUTTONDOWN)
	{
		ptr = cvPtr2D(img1, y,x,NULL);	//获取像素的灰度值
		sprintf(label, "Color:(%d, %d, %d)",ptr[0], ptr[1], ptr[2]);
		sprintf(label2, "Pixel:(%d, %d)", x, y);	//获取坐标点位置
		cvRectangle(img1, cvPoint(x,y-12),cvPoint(x+180, y+20),
			CV_RGB(255,0,0),CV_FILLED, 8,0);
		cvPutText(img1,label,cvPoint(x,y),&font,CV_RGB(255,255,255) );
		cvPutText(img1,label2,cvPoint(x,y+20),&font2,CV_RGB(255,255,255) );
		cvShowImage("src",img1);
	}
}

实验结果图如下:

源代码下载地址:http://download.csdn.net/detail/beijingmake209/7341415

猜你喜欢

转载自blog.csdn.net/beijingmake209/article/details/25725395