Python 中图像的负变换

在本文中,您将学习如何在 Python 中使用 PIL 对图像执行负变换。PIL 是Python Imaging Library的缩写该库用于多种图像转换。PIL 使处理图像变得非常容易,并且可以帮助您编辑图像的不同部分,而无需使用很多行代码。


导入模块

让我们使用 PIL 中的图像类来实现此目的。结果,脚本的第一行将如下所示:

from PIL import Image

在本例中,图像类由许多属性和方法组成。要打开图像、查看图像、从给定图像检索像素以及更改图像中的像素,我们需要 open、show、getpixel 和 putpixel 方法。

那么,让我们看看如何打开图像。可以按如下方式进行。

1
2
3
4
5
from PIL import Image
import matplotlib.pyplot as plt
img=Image.open("fig.jpg")
plt.axis('off')
plt.imshow(img)

加载图像

这里,img 是所提供图像的图像对象,可以在图像的路径中找到它。” 让我们看看图像中颜色的负变换。

负变换输入

众所周知,在RGB颜色模型下,每种颜色都有一个范围为0-255的小数索引。值 0 表示最低,值 255 表示最高。例如,(255,255,255) 表示白色。

类似地,(0,0,0)代表黑色。我们的目的是进行颜色的负变换,这意味着反转颜色,如下所示。

令颜色X表示为(r,g,b)=(100,100,100)。可以变换如下

R=255-r =255-100=155 => R=155
类似地,G=155 和 B=155
因此 X 的负变换颜色索引为 (R,G,B) =(155,155,155)

实现图像的负变换

因此,让我们为图像的每个像素实现颜色负变换。

1
2
3
4
5
6
7
8
9
10
w,h=img.size
for i in range(w):
    for j in range(h):
        r,g,b=img.getpixel((i,j))
        r=255-r
        g=255-g
        b=255-b
        img.putpixel((i,j),(r,g,b))
plt.axis('off')
plt.imshow(img)
负变换输出

Python 图像负变换代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from PIL import Image
import matplotlib.pyplot as plt
img=Image.open("fig.jpg")
 
w,h=img.size
for i in range(w):
    for j in range(h):
        r,g,b=img.getpixel((i,j))
        r=255-r
        g=255-g
        b=255-b
        img.putpixel((i,j),(r,g,b))
plt.axis('off')
plt.imshow(img)
负变换输入 2
负变换输出 2

结论

恭喜!您刚刚学习了如何获得图像的负变换。希望你喜欢它!😇

喜欢该教程吗?无论如何,我建议您查看下面提到的教程:

  1. Python Patchify – 从大图像中提取补丁
  2. 用 Python 对服装图像进行分类 – 完整指南
  3. 在 Python 中对图像进行去噪 – 分步指南
  4. 使用直方图可视化图像中的颜色 – Python OpenCV

感谢您抽出宝贵时间!希望你学到新东西!😄