cv::imread()读入bmp图片出错

来源:互联网 发布:tp link软件升级 编辑:程序博客网 时间:2024/06/05 05:52

任意拍一张图片(通常是JPG格式),在电脑画图工具中转成24位bmp图像,加载到VS中会直接报错。


在VS中的加载函数:

cv::Mat img = cv::imread("circleArray.bmp", 0);//flag=0,转化为单通道灰度图


cv::imread()中flag=0时,直接将24位bmp图转成8位bmp图,但是前提是原24位bmp图需要RGB分量相同(即img(:,:,1)==img(:,:,2)==img(:,:,3))。

为此,可以在matlab中将像素点的RGB设置一致,一般地,img(:,:,2)=img(:,:,1);img(:,:,3)=img(:,:,1);