MATLAB中的imshow函数的使用方法及实例应用

一、imshow函数

           imshow是MATLAB工具软件中用于显示图像的函数,它支持多种图像类型,包括灰度图像、真彩色图像、索引图像等。以下是对imshow常用用法:

     imshow(I) 在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围,并优化图窗、坐标区和图像对象属性以便显示图像。

     imshow(I,[low high]) 显示灰度图像 I,以二元素向量 [low high] 形式指定显示范围。小于low的值显示为黑色,大于high显示为白色。使用默认数量的灰度级别时,介于 low 和 high 之间的值显示为灰色的中间色调。

     imshow(I,[]) 显示灰度图像 I,根据 I 中的像素值范围对显示进行转换。imshow 使用 [min(I(:)) max(I(:))] 作为显示范围。imshow 将 I 中的最小值显示为黑色,将最大值显示为白色。

      imshow(RGB) 在图窗中显示真彩色图像 RGB。

       imshow(BW) 在图窗中显示二值图像 BW。对于二值图像,imshow 将值为 0(零)的像素显示为黑色,将值为 1 的像素显示为白色。

  注意:imshow有时候还会与InitialMagnification和Interpolation联合使用。

1.InitialMagnification — 图像显示的初始放大倍率

100 (默认) | 数值标量 | "fit"

图像显示的初始放大倍率,指定为数值标量或 "fit"。如果设为 100,则 imshow 在 100% 放大倍率下显示图像(每个图像像素对应一个屏幕像素)。如果设为 "fit",则 imshow 缩放整个图像以适合窗口。

2. Interpolation — 插值方法
"nearest" (默认) | "bilinear"

     插值方法,指定为 "nearest" 或 "bilinear"。MATLAB 通过插值在屏幕上显示图像的缩放版本。您选择的值不会影响图像数据。根据图像内容和要实现的效果选择插值方法:

     "nearest" - 最近邻点插值。位于 (x, y) 的像素值是原始图像中与 (x, y) 最邻近的像素值。当有少量表示明显不同类别的像素值时,或当您要在高度放大的视图中查看各个像素时,此方法最合适。

     "bilinear" - 双线性插值。位于 (x, y) 的像素值是原始图像中该位置周围像素的加权平均值。为了最大限度地减少显示伪影,当您缩小图像时,imshow 函数会执行抗锯齿功能。此方法在几乎所有其他情况下都最合适

二、应用实例

  1. imshow应用实例一:读入一幅RGB彩色图像,对其进行彩色图像显示,部分图像显示,适应窗口图像显示和灰度图像显示。程序代码如下:

  clear all;
close all;
clc;
% 读取图像  
img = imread('testPicture.jpg');  
[m,n,d]=size(img);
% 创建一个新的图形窗口并显示图像  
figure,imshow(img),title('显示图像');  
% 显示图像的一部分  
imtool(img);
imgSub=img(600:1120, 560:1200,:);
figure,imshow(imgSub),title('显示图像的一部分');  
% 调整图像显示的大小以适应窗口  
figure,imshow(img, 'InitialMagnification', 'fit'),title('适应窗口大小图像');  
figure('Name','imshow应用实例一','numbertitle','off');
subplot(2,2,1), imshow(img), title('原始彩色图像');  
subplot(2,2,2), imshow(imgSub), title('显示部分彩色图像');  
subplot(2,2,3), imshow(img, 'InitialMagnification', 'fit'),title('适应窗口大小图像');  
subplot(2,2,4), imshow(rgb2gray(img)), title('灰度图像');

部分运行结果如下:

2. imshow应用实例二

    从MATLAB手动输入一个double矩阵,并进行图像显示和数据类型转换并显示。程序如下:

clear all;
close all;
clc;
I=[1 2 3 4;5 6 7 8;9 10 11 12;...
    13 14 15 16];
whos I;
imshow(I);%注意矩阵I的数据类型是double,大于1的值均显示为白色。
figure,imshow(I,[]);%此时将最小值1显示为黑色,最大值16显示为白色,其余数据颜色在黑白之间进行显示。
I2=uint8(I);
figure,imshow(I2),title('将I矩阵(double)转化为uint8后图像');
figure('name','imshow的应用','numbertitle','off');
subplot(2,2,1),imshow(I,'InitialMagnification', 'fit'),title('适应窗口大小图像imshow(I)');  
subplot(2,2,2),imshow(I, [],'InitialMagnification', 'fit'),title('适应窗口大小图像imshow(I, []');  
subplot(2,2,3),imshow(I2,'InitialMagnification', 'fit'),title('适应窗口大小图像imshow(I2)');  
subplot(2,2,4),imshow(I2, [],'InitialMagnification', 'fit'),title('适应窗口大小图像imshow(I2, []'); 

部分运行结果如下:

    从运行结果可以看出,,imshow(I,'InitialMagnification', 'fit')对像素比较少时,采用该方法显示效果好。

        如果大家觉得本文对大家学习和研究有帮助,请关注、点赞和收藏,感谢大家支持!

     

  • 16
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值