为什么我在尝试将opencv图像数据指针转换为char*时出错
Why I am getting error when I try to cast an opencv image data pointer to a char*
我有这个代码:
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++对象中:我应该使用父类强制转换指针,还是应该使用实际类本身进行强制转换
- Delphi中的类型转换指针添加
- C++分段错误(核心转储)错误 - 强制转换指针/将函数值返回到线程
- 以C++和运算符优先级键入指向数组成员的强制转换指针
- C++动态强制转换指针的内存清理
- 转换指针和引用的好处
- 在c++中转换指针