imshow显示用矩阵保存的多张图片_[原]matlab ( octave ) imshow显示图像详解

本文详细介绍了在MATLAB/Octave中如何正确使用imshow显示由矩阵保存的双精度(double)灰度图像。内容包括:1) uint8类型图像的显示;2) double类型图像显示为何呈现全白;3) 如何转换和调整double类型图像以正常显示;4) 处理含有负值像素的图像显示方法。
摘要由CSDN通过智能技术生成

最近在用octave (类似于matlab的计算软件, 函数和matlab一致) 写程序的时候, 在显示图像和保存图像的时候遇到了一些小问题, 所以简单的总结了一下。

本文用的图像为灰度图像:

imread() 返回的图像类型是uint8类型, 这时用imshow显示图像的时候, imshow会认为输入矩阵的范围在0-255, 如果imshow的参数为double类型的,那么imshow认为输入矩阵的值为0-1.

很多时候需要将图像转换为double类型的, 但是转换以后直接使用imshow显示的是一片白色, 是因为当imshow显示图像的时候, 会认为double类型的图像矩阵的范围在0-1, 超过1的像素值当作1处理, 这样就是几乎所有的像素都是白色。

情况1:

% img will be uint8 type

img = imread('syz.bmp');

% imshow: when the parameter img is uint8 type,

% imshow will default make the range of pixel value as [0-255]

imshow(img);

fprintf('Program paused. Press enter to continue.\n');

pause; 这个时候直接显示读入的图像是正确的, 因为这个时候图像的类型是uint8

显示结果:

情况2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值