1
我是OpenCV的初學者,並希望在控制檯中打印通過點擊它定義的像素(RGB格式)的特定值。opencv設置鼠標回調
經過一番搜索,我設法引導了我在圖片上點擊的座標。
如果有人知道如何做到這一點,請修改這個代碼,我使用:
void mouseEvent (int evt, int x, int y, int flags, void* param)
{
if (evt == CV_EVENT_LBUTTONDOWN)
{
printf("%d %d\n",x ,y);
}
}
,這是我用來調用該函數:
cvSetMouseCallback("blah blah", mouseEvent, 0);
只是爲了澄清你對Cristian的回答:'cvSetMouseCallback()'的最後一個參數是一個指針,它用於將用戶數據發送到回調函數。因此,我們感興趣的數據發送它的圖像本身,所以當點擊時,你可以訪問該指定位置的像素。這就是這個答案所顯示的。 – karlphillip 2013-02-14 16:17:18
thx爲答案隊友,但仍然有一些困難:我在Dev C++上使用OpenCV 2.1。我嘗試將Mat * rgb切換到CvScalar,但仍然必須更改(* rgb).at(y,x)[0]。如果你知道如何改變這個2.1我會很感激它! –
2013-02-18 08:58:17
IT! ((uchar *)(rgb-> imageData + rgb-> widthStep * y))[x * 3]替換(int)(* rgb).at(y,x)[0]與 和Mat * rgb =(Mat *)param; 與 IplImage * rgb =(IplImage *)param; Thx求救! –
2013-02-18 09:34:16