首页 文章

OpenCV mat * image =(Mat *)图片

提问于
浏览
-5

嗨,我是OpenCV和C的新手 . 我当时想要使用setMouseCallback函数并按原样执行:

setMouseCallback("Window Name", functionName, &frame);

void functionName("int event, int x, int y, int flag, void* param"){
Mat *image = (Mat*)param;
//other stuff here
}

我想问一下......为什么我必须把(Mat *)param而不仅仅放入Mat * param .

提前致谢!

1 回答

  • 1

    此示例中的内容是显式类型转换(请参阅例如http://en.cppreference.com/w/cpp/language/explicit_cast) . paramMat* image 的类型不同,因此您不能简单地指定 param 指针,它很可能与 Mat* (请参阅juanchopanza的问题)具有不同的类型 image . 因此,您必须告诉编译器即使指针类型不同,底层对象类型也与分配给 Mat * 兼容 .

    你要提到的另一件事: Mat *param 有一个完全不同的含义,它意味着你正在创建一个名为 param 的新 Mat 指针 .

相关问题