欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/4/16 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 1.1 基本图像导入、处理和导出 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

步骤 1:读取并显示图像
①使用 imread 命令将图像读入工作区。该示例读取工具箱附带的一个示例图像(名为 pout.tif 的文件中一个小女孩的图像),并将其存储在名为 I 的数组中。imread 根据文件推断图形文件格式为标记图像文件格式 (TIFF)。
②使用 imshow 函数显示该图像。您也可以在图像查看器中查看图像。imtool 函数打开图像查看器该 App 提供显示图像和执行一些常见图像处理任务的集成环境。图像查看器提供 imshow 的所有图像显示功能,还支持访问其他几个图像导航和浏览工具,如滚动条、像素区域工具、图像信息工具和对比度调节工具。

I = imread('pout.tif'); %将图像读入工作区 imshow(I); %显示该图像 imtool; %打开图像查看器查看图像,并可进行一些图像操作处理。打开图像查看器以后要将图像导入进去才可显示图像



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

>> whos IName Size Bytes Class AttributesI 291x240 69840 uint8

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

I = imread('pout.tif'); subplot(1,2,1); imshow(I); title('pout.tif'); subplot(1,2,2); imhist(I); %调用imhist函数创建直方图 title('直方图');


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

I = imread('pout.tif'); subplot(1,2,1); imshow(I); title('原图'); subplot(1,2,2); I2 = histeq(I); %调用hiseq函数使得图像对比度增强 imshow(I2); title('对比度增强的图像');


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

I = imread('pout.tif'); subplot(2,2,1); imshow(I); title('原图'); subplot(2,2,2); imhist(I); %%调用imhist函数创建原图直方图 title('原图直方图'); subplot(2,2,3); I2 = histeq(I); %调用hiseq函数使得图像对比度增强 imshow(I2); title('对比度增强的图像'); subplot(2,2,4); imhist(I2); %调用imhist函数创建对比度增强的图像直方图 title('对比度增强的图像直方图');


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

imwrite (I2, 'pout2.png'); %将刚刚经过调整的图像 I2 写入磁盘文件

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

>> imfinfo('pout2.png')ans = struct with fields:Filename: '/MATLAB Drive/pout2.png'FileModDate: '17-Jan-2022 07:36:44'FileSize: 36938Format: 'png'FormatVersion: []Width: 240Height: 291BitDepth: 8ColorType: '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: '17 Jan 2022 07:36:44 +0000'Title: []Author: []Description: []Copyright: []CreationTime: []Software: []Disclaimer: []Warning: []Source: []Comment: []OtherText: []

总结

以上是生活随笔为你收集整理的1.1 基本图像导入、处理和导出的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。