我有以下代码:

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

但我得到错误:
'const_cast' : cannot convert from 'uchar *const ' to 'char *'

为什么我收到此错误?

最佳答案

从技术上讲,问题是const_cast只能更改CV限定词,而从uchar *const转换为char *的作用还不止于此:它还会将unsigned char(由OpenCV别名为uchar)转换为char(按指针)。

我建议您不要删除const限定词。但是,如果您无法避免,则将指针转换为uchar*应该适合您。

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

如果您确实想要char*,也可以这样做。
char* dp = reinterpret_cast<char*>(dataPointer);

关于c++ - 为什么在尝试将opencv图像数据指针转换为char *时出现错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28538474/

10-12 23:15