我正在使用openCV 2.4开发Visual Studio 2010(C ++)中的照片测量项目。我需要做的是能够单击照片上的ANYWHERE并保存鼠标事件的x和y坐标。看似简单。但是,让我们说,例如,我的照片是1920 x 1080.如果我尝试点击图像的右下角(甚至用放大镜点击放大)我只能点击边缘点(1916,1078)。如果我展开图像,它似乎能够进一步点击,这让我觉得有些不对劲。以下是我的代码的主要部分。
创建窗口并设置回调函数的部分
// create a window
cvNamedWindow( "mainWin", CV_WINDOW_NORMAL );
// set mouse callback
cvSetMouseCallback("mainWin", onMouse);
// show the image
cvShowImage("mainWin", img );
// wait for a key
cvWaitKey(0);
// release the image
cvReleaseImage(&img );
onMouse活动
void onMouse(int event, int x, int y, int flags, void *param){
switch(event){
case CV_EVENT_LBUTTONDOWN: //single click
char Char_Array[20];
sprintf(Char_Array,"Click: %d, %d", x,y);
MessageBoxA(NULL, Char_Array, "ERROR", MB_TASKMODAL | MB_OK);
}
似乎应该非常直接。关于为什么我无法访问第1920列或第1080行的任何想法?