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

任意拍一张图片(通常是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);


猜你喜欢

转载自blog.csdn.net/qq_33810188/article/details/78224168