MATLAB 中图像的底片

Ammar Ali 2021年11月29日
MATLAB 中图像的底片

本教程将讨论通过在 Matlab 中更改图像中存在的像素的强度级别来查找图像的底片。

在 MATLAB 中获得图像的底片

图片由包含不同强度级别的像素组成。例如,一个 200 x 200 的图像意味着水平轴上有 200 个像素,而垂直轴上只有 200 个像素。每个像素由强度级别组成。例如,8 位图像由 256 个强度级别组成,从 0 到 256。要获得图像的底片,我们需要反转图像的这些值。例如,我们需要将 0 转换为 256 并将 256 转换为 0。对图像取负值的公式是最大强度级别 - 像素值。例如,在 8 位图像的情况下,最大强度级别为 256,因此我们可以从 256 中减去每个像素值并将该值存储回特定像素。在 Matlab 中,我们可以使用 imread() 函数读取图像文件并将其存储到变量中。此函数的算法是读取图像并将其存储在变量中,然后从 256 中减去每个像素值并将其存储回原始变量中,并使用函数 imshow() 显示图像。在输出中,图像颜色将被反转。例如,如果颜色为白色,则会转换为黑色。例如,让我们在 Matlab 中获取图像的底片。请参阅下面的代码。

OriginalImg = imread('cat.jpg');
NImg = 256 - OriginalImg;
subplot(1,2,1)
imshow(OriginalImg)
title('Original image')
subplot(1,2,2)
imshow(NImg)
title('Negative Image')

输出:

图像的底片

在上面的输出中,图像的颜色已经反转。浅色已转换为深色,深色已转换为浅色。在彩色图像的情况下,红色变为青色,绿色变为洋红色,蓝色变为黄色,反之亦然。在二进制图像的情况下,零将被替换为一和零替换。我们还可以使用 Matlab 的内置函数 imcomplement() 来查找图像的底片。函数 imcomplement() 从图像类的最大像素值中减去像素值。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Image