我有以下代码:
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/