NumPy cho ảnh

Xử lý ảnh bằng Python

Rebeca Gonzalez

Data Engineer

NumPy cho ảnh

  • Cơ bản về xử lý ảnh
    • Lật ảnh
    • Trích xuất và phân tích đặc trưng

Chó con đi trong công viên

Chó con lật ngang

Xử lý ảnh bằng Python

Ảnh là NdArray

Tòa nhà Madrid

# Tải ảnh bằng Matplotlib
madrid_image = plt.imread('/madrid.jpeg')

type(madrid_image)
<class 'numpy.ndarray'>
Xử lý ảnh bằng Python

Màu sắc với NumPy

Ảnh nho ở trên và 3 ảnh kênh màu bên dưới

Xử lý ảnh bằng Python

Màu sắc với NumPy

# Lấy giá trị kênh đỏ của ảnh
red = image[:, :, 0]

# Lấy giá trị kênh xanh lục của ảnh
green = image[:, :, 1]

# Lấy giá trị kênh xanh dương của ảnh
blue = image[:, :, 2]

Các kênh của ảnh hiển thị riêng

Xử lý ảnh bằng Python

Màu sắc với NumPy

Các kênh của ảnh cô gái trẻ hiển thị riêng với thang xám

plt.imshow(red, cmap="gray")    
plt.title('Red')
plt.axis('off')
plt.show()
Xử lý ảnh bằng Python

Shape

Tòa nhà Madrid

# Truy cập shape của ảnh
madrid_image.shape
(426, 640, 3)
Xử lý ảnh bằng Python

Size

Tòa nhà Madrid

# Truy cập size của ảnh
madrid_image.size
817920
Xử lý ảnh bằng Python

Lật ảnh: dọc

# Lật ảnh theo chiều dọc
vertically_flipped = np.flipud(madrid_image)

show_image(vertically_flipped, 'Vertically flipped image')

Ảnh Madrid lật dọc

Xử lý ảnh bằng Python

Lật ảnh: ngang

# Lật ảnh theo chiều ngang
horizontally_flipped = np.fliplr(madrid_image)

show_image(horizontally_flipped, 'Horizontally flipped image')

Ảnh Madrid lật ngang

Xử lý ảnh bằng Python

Histogram là gì?

Histogram của ảnh tối Histogram của ảnh sáng

Xử lý ảnh bằng Python

Histogram màu

Histogram màu của ảnh RGB-3 cô gái trẻ, mỗi màu một biểu đồ

Xử lý ảnh bằng Python

Ứng dụng của histogram

  • Phân tích
  • Ngưỡng hóa
  • Độ sáng và tương phản
  • Cân bằng ảnh

Ảnh sau ngưỡng hóa

Xử lý ảnh bằng Python

Histogram trong Matplotlib

Histogram kênh đỏ

# Kênh đỏ của ảnh
red = image[:, :, 0]

# Tính histogram của kênh đỏ plt.hist(red.ravel(), bins=256)
Xử lý ảnh bằng Python

Trực quan hóa histogram với Matplotlib

blue = image[:, :, 2]

plt.hist(blue.ravel(), bins=256)
plt.title('Blue Histogram')
plt.show()

Histogram kênh xanh dương của ảnh

Xử lý ảnh bằng Python

Ayo berlatih!

Xử lý ảnh bằng Python

Preparing Video For Download...