我有一個my_mouse_callback
例如函數與IplImage結構*作品:墊和setMouseCallback功能
void my_mouse_callback(int event, int x, int y, int flags, void* param)
{
IplImage* image = (IplImage*) param;
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
drawing_box = true;
box = cvRect(x, y, 0, 0);
break;
...
draw_box(image, box);
break;
}
這是在main
實現這樣的:
cvSetMouseCallback(Box Example,my_mouse_callback,(void*) image);
的問題是,在我的代碼我m使用Mat對象,並且不能通過這種方式轉移到setMouseCallback
函數。
我正在尋找一種解決方案,不涉及將Mat傳輸到IplImage *。
或者如果沒有解決方案,我該如何正確地將Mat轉換爲IplImage *?
我想,已經與來自OpenCV的文檔驗證碼:
Mat I;
IplImage* pI = &I.operator IplImage();
,並沒有奏效。
泰,你的回答使我的解決方案, 的IplImage * ipl_img =新的IplImage(mat_image);我可以使用: setMouseCallback(imageName,onMouse,(void *)&ipl_img); – notphunny
這就是主意。順便說一下,我的答案附近有一個複選框,您可以點擊它將其選爲您問題的官方答案。祝你好運,並歡迎來到stackoverflow。 – karlphillip