การแปลงภาพ

การประมวลผลภาพด้วย Python

Rebeca Gonzalez

Data Engineer

ทำไมต้องแปลงภาพ?

  • เตรียมภาพสำหรับโมเดล Machine Learning ประเภท classification
  • การปรับแต่งและบีบอัดภาพ
  • บันทึกภาพโดยรักษาสัดส่วนเดิม

รูปแมวที่กำลังถูกประมวลผลและลดขนาด

การประมวลผลภาพด้วย Python

การหมุนภาพ

สุนัข 2 ตัวกำลังเล่นและเดิน

ภาพสุนัข 2 ตัวกำลังเล่นและเดิน หมุน 90 องศาตามเข็มนาฬิกา

การประมวลผลภาพด้วย Python

การหมุนภาพ

สุนัข 2 ตัวกำลังเล่นและเดิน

ภาพสุนัข 2 ตัวกำลังเล่นและเดิน หมุน 90 องศาทวนเข็มนาฬิกา

การประมวลผลภาพด้วย Python

การหมุนตามเข็มนาฬิกา

from skimage.transform import rotate

# Rotate the image 90 degrees clockwise image_rotated = rotate(image, -90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees clockwise')

ภาพต้นฉบับของสุนัขเทียบกับภาพที่หมุนแล้ว

การประมวลผลภาพด้วย Python

การหมุนทวนเข็มนาฬิกา

from skimage.transform import rotate

# Rotate an image 90 degrees anticlockwise image_rotated = rotate(image, 90)
show_image(image, 'Original') show_image(image_rotated, 'Rotated 90 degrees anticlockwise')

ภาพต้นฉบับของสุนัขเทียบกับภาพที่หมุน 90 องศา

การประมวลผลภาพด้วย Python

การปรับสเกล

ภาพต้นฉบับของสุนัข 2 ตัวขนาด 3000 พิกเซล เทียบกับภาพที่ย่อขนาดแล้ว 800 พิกเซล

การประมวลผลภาพด้วย Python

การปรับสเกล

ลดขนาด
from skimage.transform import rescale

# Rescale the image to be 4 times smaller image_rescaled = rescale(image, 1/4, anti_aliasing=True, multichannel=True)
show_image(image, 'Original image') show_image(image_rescaled, 'Rescaled image')
การประมวลผลภาพด้วย Python

การปรับสเกล

ภาพต้นฉบับของสุนัข 2 ตัวขนาด 3000 พิกเซล เทียบกับภาพที่ย่อขนาดแล้ว 800 พิกเซล

การประมวลผลภาพด้วย Python

Aliasing ในภาพดิจิทัล

ภาพตัวอักษร A แบบไม่มี aliasing เทียบกับแบบมี aliasing

การประมวลผลภาพด้วย Python

Aliasing ในภาพดิจิทัล

ภาพสุนัข 2 ตัวที่ปรับสเกลแล้วแบบมี aliasing เทียบกับแบบไม่มี aliasing

การประมวลผลภาพด้วย Python

การปรับขนาด

ภาพต้นฉบับขนาด 3000 พิกเซล เทียบกับภาพที่ resize แล้ว 800 พิกเซล

การประมวลผลภาพด้วย Python

การปรับขนาด

from skimage.transform import resize

# Height and width to resize height = 400 width = 500
# Resize image image_resized = resize(image, (height, width), anti_aliasing=True)
# Show the original and resulting images show_image(image, 'Original image') show_image(image_resized, 'Resized image')
การประมวลผลภาพด้วย Python

การปรับขนาด

ภาพต้นฉบับสุนัข 2 ตัวขนาด 3000 พิกเซล เทียบกับภาพที่ปรับขนาดแล้วซึ่งสัดส่วนผิดเพี้ยน

การประมวลผลภาพด้วย Python

การปรับขนาดตามสัดส่วน

from skimage.transform import resize

# Set proportional height so its 4 times its size height = image.shape[0] / 4 width = image.shape[1] / 4
# Resize image 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...