MATLAB矩阵保存为图像问题,为什么保存图像为空白? RGB值为255。
有如下的矩阵数据:img=[57,67,45,34,23,56,87,53,75,54;34,43,54,23,16,34,65,76,53,45;57,67,45,34...
有如下的矩阵数据:
img =
[ 57,67,45,34,23,56,87,53,75,54;
34,43,54,23,16,34,65,76,53,45;
57,67,45,34,23,56,87,53,75,54;
]
imshow(img) 是有图案的,然后我 imwrite(img , './temp/~test.bmp'), 保存的图像为白色的,即结果如下。
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
请问我需要怎么保存这个图像? 我该怎么做? 展开
img =
[ 57,67,45,34,23,56,87,53,75,54;
34,43,54,23,16,34,65,76,53,45;
57,67,45,34,23,56,87,53,75,54;
]
imshow(img) 是有图案的,然后我 imwrite(img , './temp/~test.bmp'), 保存的图像为白色的,即结果如下。
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
请问我需要怎么保存这个图像? 我该怎么做? 展开
展开全部
保存图像为空白,是由于数值超范围了。
保存图像原理:
MATLAB矩阵保存的是二进制的整形,数据范围在0-10之间,做处理
A = A/10*255;
A = uint8(A);
然后再存储,就能最大地利用0-255的范围了。
本题应为:
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
img=uint8(img)(加上这句,即可)
保存图像原理:
MATLAB矩阵保存的是二进制的整形,数据范围在0-10之间,做处理
A = A/10*255;
A = uint8(A);
然后再存储,就能最大地利用0-255的范围了。
本题应为:
[文件头][信息头][调色板][255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; 255,255,255,255,255,255,255,255,255,255; ]
img=uint8(img)(加上这句,即可)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询