Phép biến đổi

Xử lý ảnh bằng Python

Rebeca Gonzalez

Data Engineer

Vì sao biến đổi ảnh?

  • Chuẩn bị ảnh cho mô hình Machine Learning phân loại
  • Tối ưu và nén ảnh
  • Lưu ảnh giữ nguyên tỷ lệ

Ảnh mèo được xử lý, giảm tỷ lệ

Xử lý ảnh bằng Python

Xoay

2 con chó đang chơi, đi bộ

Ảnh 2 con chó đang chơi, đi bộ xoay 90 độ theo chiều kim đồng hồ

Xử lý ảnh bằng Python

Xoay

2 con chó đang chơi, đi bộ

2 con chó đang chơi, đi bộ xoay 90 độ ngược chiều kim đồng hồ

Xử lý ảnh bằng Python

Xoay theo chiều kim đồng hồ

from skimage.transform import rotate

# Xoay ảnh 90 độ theo chiều kim đồng hồ image_rotated = rotate(image, -90)
show_image(image, 'Gốc') show_image(image_rotated, 'Xoay 90° theo chiều kim đồng hồ')

Ảnh gốc của chó bên cạnh ảnh đã xoay

Xử lý ảnh bằng Python

Xoay ngược chiều kim đồng hồ

from skimage.transform import rotate

# Xoay ảnh 90 độ ngược chiều kim đồng hồ image_rotated = rotate(image, 90)
show_image(image, 'Gốc') show_image(image_rotated, 'Xoay 90° ngược chiều kim đồng hồ')

Ảnh gốc của chó bên cạnh ảnh xoay 90 độ ngược chiều kim đồng hồ

Xử lý ảnh bằng Python

Tái tỷ lệ (Rescaling)

Ảnh gốc 2 con chó kích thước 3000 pixel bên cạnh ảnh giảm tỷ lệ còn 800 pixel

Xử lý ảnh bằng Python

Tái tỷ lệ (Rescaling)

Giảm kích thước
from skimage.transform import rescale

# Thu ảnh nhỏ đi 4 lần image_rescaled = rescale(image, 1/4, anti_aliasing=True, multichannel=True)
show_image(image, 'Ảnh gốc') show_image(image_rescaled, 'Ảnh đã tái tỷ lệ')
Xử lý ảnh bằng Python

Tái tỷ lệ (Rescaling)

Ảnh gốc 2 con chó kích thước 3000 pixel bên cạnh ảnh giảm tỷ lệ còn 800 pixel

Xử lý ảnh bằng Python

Aliasing trong ảnh số

Chữ A không bị răng cưa bên cạnh chữ A bị răng cưa

Xử lý ảnh bằng Python

Aliasing trong ảnh số

Ảnh 2 con chó đã tái tỷ lệ bị răng cưa bên cạnh ảnh đã tái tỷ lệ không bị răng cưa

Xử lý ảnh bằng Python

Đổi kích thước (Resizing)

Ảnh gốc 3000 pixel bên cạnh ảnh đổi kích thước 800 pixel

Xử lý ảnh bằng Python

Đổi kích thước (Resizing)

from skimage.transform import resize

# Chiều cao và rộng cần đổi height = 400 width = 500
# Đổi kích thước ảnh image_resized = resize(image, (height, width), anti_aliasing=True)
# Hiển thị ảnh gốc và ảnh kết quả show_image(image, 'Ảnh gốc') show_image(image_resized, 'Ảnh đã đổi kích thước')
Xử lý ảnh bằng Python

Đổi kích thước (Resizing)

Ảnh gốc 2 con chó 3000 pixel bên cạnh ảnh đổi kích thước không đúng tỷ lệ

Xử lý ảnh bằng Python

Đổi kích thước theo tỷ lệ

from skimage.transform import resize

# Đặt chiều cao/tộng theo tỷ lệ, nhỏ đi 4 lần height = image.shape[0] / 4 width = image.shape[1] / 4
# Đổi kích thước ảnh image_resized = resize(image, (height, width), anti_aliasing=True)
show_image(image_resized, 'Ảnh đã đổi kích thước')
Xử lý ảnh bằng Python

Đổi kích thước theo tỷ lệ

Ảnh gốc 2 con chó 3000 pixel bên cạnh ảnh đổi kích thước đúng tỷ lệ, 800 pixel

Xử lý ảnh bằng Python

Hãy luyện tập!

Xử lý ảnh bằng Python

Preparing Video For Download...