Main Content

基本图像导入、处理和导出

此示例说明如何将图像读入工作区、调整图像的对比度,然后将调整后的图像写入文件。

步骤 1:读取并显示图像

使用 imread 命令将图像读入工作区。该示例读取工具箱附带的一个示例图像(名为 pout.tif 的文件中一个小女孩的图像),并将其存储在名为 I 的数组中。imread 根据文件推断图形文件格式为标记图像文件格式 (TIFF)。

I = imread('pout.tif');

使用 imshow 函数显示该图像。您也可以在图像查看器中查看图像。imtool 函数打开图像查看器,该 App 提供显示图像和执行一些常见图像处理任务的集成环境。图像查看器提供 imshow 的所有图像显示功能,还支持访问其他几个图像导航和浏览工具,如滚动条、像素区域工具、图像信息工具和对比度调节工具。

imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

步骤 2:检查图像在工作区中的显示方式

使用 whos 命令,检查 imread 函数如何在工作区中存储图像数据。您也可以在工作区浏览器中检查变量。imread 函数返回变量 I 中的图像数据,这是由 uint8 数据组成的 291×240 元素数组。

whos I
  Name        Size             Bytes  Class    Attributes

  I         291x240            69840  uint8              

步骤 3:提高图像对比度

查看图像像素强度的分布。图像 pout.tif 是一个对比度较低的图像。要查看图像中的强度分布,请通过调用 imhist 函数创建直方图。(请在调用 imhist 之前使用 figure 命令,这样直方图就不会覆盖当前图窗窗口中显示的图像 I。)请注意直方图表明图像的强度范围相当窄。该范围未能涵盖 [0, 255] 之间尽可能多的范围,并缺少能产生良好对比度的高值和低值。

figure
imhist(I)

Figure contains 2 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line.

使用 histeq 函数提高图像的对比度。直方图均衡使强度值扩展分布到了图像的完整范围内。显示图像。(工具箱包含用于执行对比度调整的其他几个函数,包括 imadjustadapthisteq,以及图像查看器中提供的交互式工具,如 Adjust Contrast 工具。)

I2 = histeq(I);
figure
imshow(I2)

Figure contains an axes object. The axes object contains an object of type image.

再次调用 imhist 函数,创建经过均衡处理的图像 I2 的直方图。如果比较这两个直方图,会看到 I2 的直方图比 I 的直方图在整个强度范围内分布得更广。

figure
imhist(I2)

Figure contains 2 axes objects. Axes object 1 contains an object of type stem. Axes object 2 contains 2 objects of type image, line.

步骤 4:将调整后的图像写入磁盘文件

使用 imwrite 函数,将刚刚经过调整的图像 I2 写入磁盘文件。此示例在文件名中包含文件扩展名 '.png',因此 imwrite 函数将图像以可移植网络图形 (PNG) 格式写入文件,但您可以指定其他格式。

imwrite (I2, 'pout2.png');

步骤 5:检查新写入文件的内容

使用 imfinfo 函数查看 imwrite 写入磁盘文件的内容。imfinfo 函数返回文件中图像的相关信息,例如图像的格式、大小、宽度和高度。

imfinfo('pout2.png')
ans = struct with fields:
                  Filename: '/tmp/Bdoc22b_2089663_1262858/tp9872029b/images-ex89505080/pout2.png'
               FileModDate: '10-Oct-2022 01:17:45'
                  FileSize: 36938
                    Format: 'png'
             FormatVersion: []
                     Width: 240
                    Height: 291
                  BitDepth: 8
                 ColorType: 'grayscale'
           FormatSignature: [137 80 78 71 13 10 26 10]
                  Colormap: []
                 Histogram: []
             InterlaceType: 'none'
              Transparency: 'none'
    SimpleTransparencyData: []
           BackgroundColor: []
           RenderingIntent: []
            Chromaticities: []
                     Gamma: []
               XResolution: []
               YResolution: []
            ResolutionUnit: []
                   XOffset: []
                   YOffset: []
                OffsetUnit: []
           SignificantBits: []
              ImageModTime: '10 Oct 2022 05:17:45 +0000'
                     Title: []
                    Author: []
               Description: []
                 Copyright: []
              CreationTime: []
                  Software: []
                Disclaimer: []
                   Warning: []
                    Source: []
                   Comment: []
                 OtherText: []