用於影像的 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 影像處理

一起來練習吧!

Python 影像處理

Preparing Video For Download...