轉換

Python 影像處理

Rebeca Gonzalez

Data Engineer

為什麼要轉換影像?

  • 為分類 Machine Learning 模型準備影像
  • 影像最佳化與壓縮
  • 以相同比例儲存影像

一張被處理、降尺度的貓咪照片

Python 影像處理

旋轉

2 隻狗在玩耍、散步

2 隻狗玩耍、散步的照片,順時針旋轉 90 度

Python 影像處理

旋轉

2 隻狗在玩耍、散步

2 隻狗玩耍、散步的照片,逆時針旋轉 90 度

Python 影像處理

順時針旋轉

from skimage.transform import rotate

# 將影像順時針旋轉 90 度 image_rotated = rotate(image, -90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees clockwise')

原始狗狗照片與順時針旋轉後並排

Python 影像處理

逆時針旋轉

from skimage.transform import rotate

# 將影像逆時針旋轉 90 度 image_rotated = rotate(image, 90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees anticlockwise')

原始狗狗照片與逆時針 90 度旋轉後並排

Python 影像處理

重設尺度(Rescaling)

2 隻狗的原始影像為 3000 像素,旁為降尺度後的 800 像素影像

Python 影像處理

重設尺度(Rescaling)

降尺度
from skimage.transform import rescale

# 將影像縮小為原本的 1/4 image_rescaled = rescale(image, 1/4, anti_aliasing=True, multichannel=True)
show_image(image, 'Original image') show_image(image_rescaled, 'Rescaled image')
Python 影像處理

重設尺度(Rescaling)

2 隻狗的原始影像為 3000 像素,旁為降尺度後的 800 像素影像

Python 影像處理

數位影像中的鋸齒(Aliasing)

字母 A 的影像:無鋸齒與有鋸齒對照

Python 影像處理

數位影像中的鋸齒(Aliasing)

2 隻狗的重設尺度影像:一張有鋸齒,另一張無鋸齒

Python 影像處理

調整大小(Resizing)

原始影像 3000 像素,旁為調整大小後的 800 像素影像

Python 影像處理

調整大小(Resizing)

from skimage.transform import resize

# 設定要調整的高度與寬度 height = 400 width = 500
# 調整影像大小 image_resized = resize(image, (height, width), anti_aliasing=True)
# 顯示原始與結果影像 show_image(image, 'Original image') show_image(image_resized, 'Resized image')
Python 影像處理

調整大小(Resizing)

2 隻狗的原始影像為 3000 像素,旁為調整大小後但比例失衡的影像

Python 影像處理

等比例調整大小

from skimage.transform import resize

# 以等比例設定高度與寬度,縮小為原本的 1/4 height = image.shape[0] / 4 width = image.shape[1] / 4
# 調整影像大小 image_resized = resize(image, (height, width), anti_aliasing=True)
show_image(image_resized, 'Resized image')
Python 影像處理

等比例調整大小

2 隻狗的原始影像為 3000 像素,旁為這次等比例調整後的 800 像素影像

Python 影像處理

一起來練習吧!

Python 影像處理

Preparing Video For Download...