通过将原始图像中的强度“ i”替换为“ i-1”来实现图像的负片,即,最暗的像素将变为最亮,而最亮的像素将变为最暗。通过从最大强度值中减去每个像素来产生负像。
例如,在8位灰度图像中,最大强度值为255,因此从255中减去每个像素以生成输出图像。
负像中使用的变换函数为:
s = T(r) = (L – 1) – r
Where L - 1 is the max intensity value,
s is the output pixel value and
r is the input pixel value
算法
- 使用Matlab内置函数
imread()
将RGB彩色图像读取到MATLAB环境中 - 计算图像的级别,例如8位图像具有256个级别
- 在图像的每个像素上使用上述公式可获得相应的负像素值。
- 将位置(i,j)处的每个RGB像素值转换为其负图像值并将其分配给另一个矩阵的对应位置(i,j)
- 使用Matlab内置的
imshow()
函数显示负像。
% reading the RGB file into the Matlab environment
skI = imread("sakura.jpg");
subplot(1, 2, 1),
% displaying the RGB image
imshow(skI);
title("Original image");
% levels of the 8-bit image
L = 2 ^ 8;
% finding the negative
neg = (L - 1) - skI;
subplot(1, 2, 2),
% displaying the negative image
imshow(neg);
title("Negative Image")
输出 :