主要内容

在图窗窗口中显示图像

概述

imshow 函数适用于二维图像的基本显示。从 R2024b 开始,您还可以使用 imageshow 函数显示二维图像。虽然这两个函数都能够在图窗窗口中显示图像,但它们有一些关键的区别,使它们适合不同应用。

imshow 具有以下优势:

  • 在坐标区内显示图像,您可以使用 MATLAB® 图形函数对其进行自定义。例如,使用 tiledlayout 一起显示多个图像,或添加标题、坐标区标签和数据提示等注解。

  • 在图窗窗口中显示图像,带有默认菜单和工具栏,允许您执行常见操作,如保存或打印图窗中的图像。

imageshow 函数具有以下优势:

  • 专为提高渲染质量、快速性能以及平滑缩放和平移交互而设计,尤其适用于中大型图像和在 MATLAB Online™ 中使用。

  • 可以显示存储为数值数组或分块图像的图像数据,包括太大而无法放入内存的文件备份图像。

  • imshow 相比,放大时显示的图像会填充图窗窗口,使用更大的屏幕部分。

注意

当您在实时编辑器中显示图像时,图窗会嵌入到实时脚本输出中。要在单独的窗口中打开图窗,请点击实时编辑器输出右上角的“在图窗窗口中打开”按钮 Open in figure window button

使用 imshow 显示图像

使用 imshow 函数将一个图像读入工作区并显示它。

moon = imread("moon.tif");
imshow(moon)

Grayscale image in a figure window

您还可以将要显示的图像指定为文件名。但是,请注意,此语法不会将图像数据存储在工作区中。如果要将图像放入工作区,必须使用 getimage 函数,该函数从当前图像目标中检索图像数据。

imshow("moon.tif");

有关使用 imshow 显示工具箱支持的各种图像类型的详细信息,请参阅Display Different Image Types

指定初始图像放大倍率

默认情况下,imshow 尝试以 100% 的放大倍率显示整个图像(每个图像像素对应一个屏幕像素)。但是,如果图像太大,无法以 100% 的放大倍率显示在屏幕上的图窗窗口中,imshow 会缩放图像以适应屏幕并发出警告消息。

若要覆盖对 imshow 的特定调用的默认初始放大行为,请指定 InitialMagnification 参数。例如,要以 150% 的放大倍率查看图像,请使用以下代码。

pout = imread("pout.tif");
imshow(pout,InitialMagnification=150)

imshow 尝试遵从您指定的放大倍率。但是,如果图像无法以指定的放大倍率显示在屏幕上,imshow 会将图像缩放至合适的大小。您还可以将 "fit" 指定为初始放大倍率值。在这种情况下,imshow 会缩放图像以适应图窗窗口的当前大小。

要更改 imshow 的默认初始放大行为,请设置 ImshowInitialMagnification 工具箱预设项。要设置预设项,请通过调用 iptprefs 打开 Image Processing Toolbox™“预设项”对话框,或在 MATLAB 主页选项卡的环境部分中,点击 预设

imshow 缩放图像时,它使用插值来确定与图像矩阵中的元素未直接对应的屏幕像素值。默认情况下,imshow 使用最近邻点插值,但您可以通过设置 Interpolation 名称-值参量来指定使用双线性插值。

控制图窗的外观

默认情况下,当 imshow 在图窗中显示图像时,图像周围会有灰色边框。您可以更改此默认值,并使用 "Border" 名称-值参量隐藏边框,如以下示例所示。

imshow("moon.tif",Border="tight")

下面的图窗显示同一个图像,一个带边框,一个不带边框。

Grayscale image in a figure window with a gray border surrounding the image.

"Border" 参量仅影响调用 imshow 时显示的图像。如果您希望用 imshow 显示的所有图像都不带灰色边框,请将 Image Processing Toolbox 的 "ImshowBorder" 预设项设置为 "tight"。您也可以使用预设项设置在图窗中包含可见坐标区。有关预设项的详细信息,请参阅 iptprefs

使用 imageshow 显示图像

以下示例将同一图像读入工作区中,然后使用 imageshow 函数在图窗窗口中显示该图像。

moon = imread("moon.tif");
imageshow(moon)

Grayscale image displayed using imageshow

imshow 类似,您也可以将要显示的图像指定为文件名。

imageshow("moon.tif");

imageshow 函数在查看器窗口中显示图像。图像缩放级别显示在查看器的右下角。要增大显示图像的大小,请最大化或手动拖动查看器的边缘来扩展窗口。如果使用鼠标滚轮或工具栏上的“缩放”按钮进行放大,图像会扩展以填充查看器窗口。比例尺会更新以显示当前缩放级别。

Grayscale image in an enlarged viewer window and zoomed in

为了优化低缩放级别和高缩放级别的渲染质量,图像插值方法会自动更改。在较低缩放级别,当图像数据的一个像素跨度小于十个屏幕像素时,图像使用双线性插值显示。当一个图像数据像素宽度为十个以上的屏幕像素时,将使用最近邻点插值显示图像。您可以使用 Interpolation 名称-值参量手动更改插值。

Animation showing the impact of image zoom level on the display interpolation method

另请参阅

| |

主题