很多情况下,我们在进行图像处理时,都想看一下某一个点的像素坐标或者是颜色信息。
这有助于验证我们对图像算法的可靠性。本篇博文给出了在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