OpenCV 垫* 图像 = (垫子*) 图像
OpenCV mat* image = (Mat*) image
嗨,我是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*( 参数,而不仅仅是放置 Mat *参数。
提前感谢!
在这个例子中,你有一个显式的类型转换(参见例如 http://en.cppreference.com/w/cpp/language/explicit_cast(。 param
的类型与您的Mat* image
不同,因此您不能简单地将指针分配给 param
,它很可能与Mat*
(参见 Juanchopanza 的问题(不同的类型image
。所以你必须告诉编译器,即使指针类型不同,底层对象类型也与分配给Mat *
兼容。
您提到的另一件事:Mat *param
具有完全不同的含义,这意味着您正在创建一个名为 param
的新Mat
指针。
相关文章:
- OpenCv 在C++中从 1 D 数组制作垫子图像的最快方法
- 如何将图像缓冲区传递到OpenCV垫子对象
- 无法释放从iPlimage创建的垫子图像
- 如何在Android模拟器上显示垫子图像?使用NDK
- 调整图像类型"垫子"的大小 opencv C++
- 如何通过Android NDK(C )将图像放入OpenCV中的垫子中
- IPLIMAGE图像与垫子大小相同
- 从垫子到矢量,<Vec3f>反之亦然,而不会损坏图像
- 无法使用cv :: imwrite保存垫子图像在JNI本机代码OPENCV中
- 对整个垫子图像进行排序并在 OpenCV 中存储索引
- OpenCV,Dlib - 作为黑色图像输出的垫子对象
- 我如何覆盖OpenCV垫子的子图像
- 将图像存储在垫子矢量中
- 将图像加载到Mat-vvector<向量<垫子>>
- 如何将已写入 xml 文件的 OpenCV 垫子转换回图像
- 将两个垫子图像合并为一个
- 给定尺寸为 26 * 7 的图像是否有可能在垫子的每一行中包含 78 个单独的颜色值,而另一个可以包含 77
- 创建垫子后,从字节向量将图像加载到垫子上
- OpenCV 垫* 图像 = (垫子*) 图像
- " cvWriteFrame "使用垫子 - 图像类型的等效功能是什么?