当我尝试将opencv图像数据指针强制转换为char时,为什么会出现错误*

时间:2015-02-16 09:44:08

标签: c++ opencv

我有这段代码:

cv::Mat myImage = imread("Image.png");
char * dataPointer = const_cast<char*>(myImage.data);

但我收到错误:

'const_cast' : cannot convert from 'uchar *const ' to 'char *'  

为什么我收到此错误?

1 个答案:

答案 0 :(得分:1)

从技术上讲,问题在于const_cast只能更改CV限定符,而从uchar *constchar *的转换只会更改:它还会转换{ {1}}(由OpenCV别名unsigned char)到uchar,指针方式。

我建议你不要删除const限定符。但是如果你无法避免,那么将指针转换为char应该适合你。

uchar*

如果你真的想要cv::Mat myImage = imread("Image.png"); uchar * dataPointer = const_cast<uchar*>(myImage.data); ,也可以这样做。

char*