关于matlab:如何将画出的8位深度的BMP改成24位深度?

如题,本人code如下:

A = uint8(zeros(1140,912));
A(:,100:150) = 128;
imwrite(A,'test.jpg','jpg');
画出来总是8位深度的图,如何在原句中进行修改,使之成为24位深度的图呢?

或者有什么其他的matlab语句修改bit的?
谢谢!

如果都是用24位表示一个像素的颜色的话,那就不用转换了,区别只在于图像显示软件如何显示了,并不是数据有什么不同。

而且一般都是24位彩色图转换为256灰度级的图,也就是把24位缩减到8位里,这个是不可恢复的过程,你不可能用8位还原出24位的彩色数据。
最多还是灰度图或者其他的单色图。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-08

前两句改成:

A = uint8(zeros(1140,912,3));
A(:,100:150,:) = 128;

本回答被提问者和网友采纳
第2个回答  2018-03-30
个人觉得8位图是可以转化为24位图的,只不过是将不同通道(R、G、B)均赋相同值即可。当然,转化后的图片仍然是灰度图片。我们知道彩色图片是有RGB合成的,现在,只要另RGB三通道的值均相等,那么,该图片仍然是灰度图片,但是位深却变成了24位。
相似回答