OpenCV中怎么把 unsiged char * 转换为 cv::Mat类型

本文作者分享了在使用OpenCV处理图像时遇到的问题,即通过Mat构造函数创建图像对象时,参数设置不当导致图像显示错误。作者强调了中间参数的重要性和其对图像类型的影响,如CV_8UC1对应灰度图像,CV_8UC3对应RGB图像等。通过自己的踩坑经历,提醒读者注意选择正确的图像通道数,以避免不必要的困扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

unsigned char * rgbImageData = 一段方法得到的rgb数据;
//直接通过Mat的构造函数就可以得到Mat对象
//值得注意的是 第三个参数
//CV_8UC1 表示灰度图像
//CV_8UC2 二值图像
//CV_8UC3 rgb图像
//CV_8UC4 rgba图像
//具体怎么选择看你的数据是什么了,如果这里设置的不对会导致你的图片很奇怪
Mat bgrImg(height,width,CV_8UC3,rgbImageData);
imshow("img", bgrImg);

这里吐槽一下我在网上找资料的时候,各种帖子直接一上来就说,填CV_8UC1,然后踩了一会坑,图像一直不正确,没有人提到中间参数的作用,最后去搜了一下中间参数的含义,才走出这个坑。希望能够帮助到需要帮助的人。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值