OpenCV鼠标回调

时间:2016-03-30 01:59:05

标签: c++ opencv

我正在使用OpenCV来编写一个程序来显示像素在图像中的位置,当我点击它时它的RGB值作为条形图(来自教科书的例子)。现在问题是当我点击另一个像素时,上面的信息显示但最后一个条没有消失。我可以知道在新栏出来时删除前栏的方法吗? 这是代码:

const char *source_img="source image";
IplImage *source_copy;
IplImage *imgSource; 
int pt_num=0;

void my_mouse_callback(int event, int x, int y, int flags, void* param){
    if(event == CV_EVENT_LBUTTONUP){
        CvFont    font;
        uchar*    ptr;
        char      label[30];
        imgSource = (IplImage*) param;
        cvInitFont(&font, CV_FONT_HERSHEY_SCRIPT_SIMPLEX, .40, .40, 0, 1, 8);

        ptr = cvPtr2D(imgSource, y, x, NULL);

        sprintf(label, "(%d, %d, %d, %d, %d)",x,y, ptr[0], ptr[1], ptr[2]);
        cvRectangle(
                    imgSource,
                    cvPoint(x, y-10),
                    cvPoint(x + 200, y + 8),
                    CV_RGB(0xff,0xff,0xff),
                    CV_FILLED, 
                    8, 0
                    );
        cvPutText(imgSource, label, cvPoint(x, y), &font, CV_RGB(0,0,0xff));

        cvShowImage(source_img, imgSource);

    }
}

请帮忙吗?

0 个答案:

没有答案