还记得您看到低质量的图像时感到有些失望吗? 还不够清晰,细节有些模糊。 如果可以将该图像增强到更好的版本该怎么办? 那不是很好吗? 幸运的是,有一种方法可以使用Python!
可以用来增强图像的方法之一是直方图均衡化 ,特别是可以增强图像的对比度 。 几乎所有的相机系统实际上都使用直方图均衡来使我们的图片看起来更好,在本教程的最后,您将发现为什么会这样。
在下一节中,我将深入研究直方图均衡化的含义以及应用该方法时图像发生的变化,然后我们将了解如何在Python中实现该方法。 准备?
直方图均衡
假设您有pout.jpg图片(继续下载)。 这是在MATLAB中使用的演示图像,我从中获得了图像,但是我们将在本教程中使用它。 该图像如下所示:
![uting嘴](https://i-blog.csdnimg.cn/blog_migrate/fa40ff621d2cf0785d6389ddb88da83c.png)
让我们看一下如何访问图像的像素值,即强度 。 我写了这个小的Python脚本,我们可以用它来做到这一点(注意我正在使用OpenCV库):
import cv2
img = cv2.imread('pout.jpg')
img_shape = img.shape
height = img_shape[0]
width = img_shape[1]
for row in range(width):
for column in range(height):
print (img[column][row])
我在这里所做的是阅读图像(pout.jpg),然后研究图像的形状(大小)。 img_shape
将返回: (1031, 850, 3)
img_shape
(1031, 850, 3)
。 这意味着我们的图像的高度(列数)为1031
,宽度为(行数)为850
,并具有3
通道(RGB)。 请注意,结果中的第一个参数是高度,第二个参数是宽度。 最后,我们遍历行和列,并在每个行/列对上打印出不同的像素值(强度)。