用于图像的 NumPy

Python 图像处理

Rebeca Gonzalez

Data Engineer

用于图像的 NumPy

  • 图像处理基础
    • 翻转
    • 提取与分析特征

可爱的小狗在公园里散步

可爱的小狗水平翻转

Python 图像处理

图像即 NdArray

马德里建筑

# 使用 Matplotlib 加载图像
madrid_image = plt.imread('/madrid.jpeg')

type(madrid_image)
<class 'numpy.ndarray'>
Python 图像处理

用 NumPy 处理颜色

上方为葡萄图像,下方为 3 个对应颜色通道图像

Python 图像处理

用 NumPy 处理颜色

# 获取图像的红色通道
red = image[:, :, 0]

# 获取图像的绿色通道
green = image[:, :, 1]

# 获取图像的蓝色通道
blue = image[:, :, 2]

分别查看的图像通道

Python 图像处理

用 NumPy 处理颜色

分别查看的年轻女性图像通道以灰度显示

plt.imshow(red, cmap="gray")    
plt.title('Red')
plt.axis('off')
plt.show()
Python 图像处理

形状(shape)

马德里建筑

# 访问图像的形状
madrid_image.shape
(426, 640, 3)
Python 图像处理

大小(size)

马德里建筑

# 访问图像的大小
madrid_image.size
817920
Python 图像处理

图像翻转:垂直

# 将图像上下翻转
vertically_flipped = np.flipud(madrid_image)

show_image(vertically_flipped, 'Vertically flipped image')

马德里图像的垂直翻转

Python 图像处理

图像翻转:水平

# 将图像左右翻转
horizontally_flipped = np.fliplr(madrid_image)

show_image(horizontally_flipped, 'Horizontally flipped image')

马德里图像的水平翻转

Python 图像处理

什么是直方图?

暗图像的直方图 亮图像的直方图

Python 图像处理

颜色直方图

年轻女性 RGB 三色图像的直方图,每种颜色一个直方图

Python 图像处理

直方图的应用

  • 分析
  • 阈值分割
  • 亮度与对比度
  • 直方图均衡化

阈值化图像

Python 图像处理

用 Matplotlib 绘制直方图

红色通道的直方图

# 图像的红色通道
red = image[:, :, 0]

# 计算红色直方图 plt.hist(red.ravel(), bins=256)
Python 图像处理

用 Matplotlib 可视化直方图

blue = image[:, :, 2]

plt.hist(blue.ravel(), bins=256)
plt.title('Blue Histogram')
plt.show()

图像蓝色通道的直方图

Python 图像处理

Passons à la pratique !

Python 图像处理

Preparing Video For Download...