用 scikit-image 讓影像動起來

Python 影像處理

Rebeca Gonzalez

Data Engineer

什麼是影像處理?

對影像與影片進行處理以:

  • 增強影像
  • 擷取有用資訊
  • 分析並做出決策

一群朋友的照片,已偵測人臉

Python 影像處理

什麼是影像處理?

對影像與影片進行處理以:

  • 增強影像
  • 擷取有用資訊
  • 分析並做出決策

左側為原始相機男士照片,右側為該圖的閾值化結果,下方為閾值化影像的直方圖

Python 影像處理

應用場景

  • 醫學影像分析
  • AI 應用
  • 影像復原與增強
  • 地理空間運算
  • 監控
  • 機器人視覺
  • 車載安全
  • 還有更多…

展示 6 種影像處理應用:人臉偵測、空間影像處理、醫學影像分析、地理空間運算與車載安全

Python 影像處理

目的

  1. 視覺化:
    • 呈現不可見的物體
  2. 影像銳利化與復原
    • 得到更清晰的影像
  3. 影像檢索
    • 尋找目標影像
  4. 模式量測
    • 量測各類物體
  5. 影像辨識
    • 區分影像中的物體
Python 影像處理

scikit-image 入門

  • 易於使用
  • 可結合 Machine Learning
  • 內建多種進階演算法

Scikit-image 函式庫標誌

Python 影像處理

什麼是影像?

一張鹿在草地上休息的照片,旁邊是放大區域,顯示像素

Python 影像處理

什麼是影像?

灰階影像的像素強度矩陣

Python 影像處理

scikit-image 中的影像

from skimage import data

rocket_image = data.rocket()

火箭

Python 影像處理

RGB 通道

上方為原始貓咪影像,下方為分離出的 RGB 色板

Python 影像處理

灰階影像

灰階影像與其強度矩陣並列

Python 影像處理

RGB 與灰階

from skimage import color
grayscale = color.rgb2gray(original)

rgb = color.gray2rgb(grayscale)

彩色太空人與其灰階版並列

Python 影像處理

課程中的影像視覺化

別擔心 Matplotlib!

def show_image(image, title='Image', cmap_type='gray'):
    plt.imshow(image, cmap=cmap_type)    
    plt.title(title)
    plt.axis('off')
    plt.show()
Python 影像處理

課程中的影像視覺化

from skimage import color
grayscale = color.rgb2gray(original)

show_image(grayscale, "Grayscale")

太空人

Python 影像處理

一起來練習吧!

Python 影像處理

Preparing Video For Download...