Xem thêm

Xử lý ảnh cơ bản trong Python

Huy Erick
Giới thiệu Trong bài viết này, chúng ta sẽ khám phá cách sử dụng OpenCV để xử lý ảnh trong Python. Chúng ta sẽ đi qua một số khái niệm căn bản và chia sẻ...

Giới thiệu

Trong bài viết này, chúng ta sẽ khám phá cách sử dụng OpenCV để xử lý ảnh trong Python. Chúng ta sẽ đi qua một số khái niệm căn bản và chia sẻ những cách thức mới để tiếp cận việc xử lý ảnh. Hãy sẵn sàng để khám phá thế giới đầy màu sắc của xử lý ảnh!

I. Cài đặt môi trường​

Để bắt đầu, chúng ta cần cài đặt thư viện opencv-python, một thư viện mạnh mẽ và thông dụng để làm việc với OpenCV trong Python. Để cài đặt thư viện này, bạn có thể sử dụng gói quản lý của Python bằng cách chạy lệnh sau:

pip install opencv-python

II. Hiển thị ảnh​

Bước đầu tiên trong việc xử lý ảnh là hiển thị ảnh lên màn hình. Chúng ta sẽ tạo một đối tượng chứa thông tin về ảnh và sau đó hiển thị nó trên giao diện.

import cv2

# Đọc ảnh từ file
image = cv2.imread("path_to_your_image.jpg")

# Hiển thị ảnh
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

III. Các thao tác với ảnh​

1. Lấy kích thước của ảnh​

Để lấy kích thước của ảnh, chúng ta sử dụng thuộc tính shape của ảnh. Kích thước được biểu diễn bằng chiều cao (h), chiều rộng (w) và độ sâu (d) của mảng ảnh.

h, w, d = image.shape
print("Kích thước ảnh:", h, "x", w, "x", d)

2. Lấy giá trị màu ở một điểm ảnh​

Để lấy giá trị màu của một điểm ảnh, chúng ta có thể sử dụng cú pháp sau:

(b, g, r) = image[y, x]
print("Giá trị màu tại điểm ảnh (x, y):", (b, g, r))

3. Xoay ảnh theo chiều dọc​

Chúng ta có thể xoay ảnh theo chiều dọc bằng cách sử dụng hàm flip().

# Xoay ảnh theo chiều dọc
flipped_image = cv2.flip(image, 0)

# Hiển thị ảnh
cv2.imshow("Flipped Image", flipped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

4. Xoay ảnh theo đường chéo chính​

Để xoay ảnh theo đường chéo chính, chúng ta có thể sử dụng hàm transpose().

# Xoay ảnh theo đường chéo chính
rotated_image = cv2.transpose(image)

# Hiển thị ảnh
cv2.imshow("Rotated Image", rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

5. Xoay ảnh theo chiều ngang​

Chúng ta cũng có thể xoay ảnh theo chiều ngang bằng cách sử dụng hàm flip().

# Xoay ảnh theo chiều ngang
flipped_image = cv2.flip(image, 1)

# Hiển thị ảnh
cv2.imshow("Flipped Image", flipped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

6. Điều chỉnh độ sáng tối của ảnh​

Để điều chỉnh độ sáng tối của ảnh, chúng ta có thể sử dụng các phép tính toán trên giá trị pixel. Hãy nhớ là nên tạo một bản sao của ảnh gốc trước khi thực hiện chỉnh sửa.

# Sao chép ảnh gốc
brightened_image = image.copy()

# Điều chỉnh độ sáng tối của ảnh
brightened_image += 50

# Hiển thị ảnh
cv2.imshow("Brightened Image", brightened_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

7. Đổi màu một vùng ảnh​

Để đổi màu của một vùng ảnh, chúng ta có thể sử dụng vị trí của vùng ảnh đó và thay đổi giá trị màu theo ý muốn.

# Sao chép ảnh gốc
colored_image = image.copy()

# Đổi màu một vùng ảnh
colored_image[y:y+h, x:x+w] = (r, g, b)

# Hiển thị ảnh
cv2.imshow("Colored Image", colored_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

IV. Tổng kết​

Trong bài viết này, chúng ta đã tìm hiểu cách bắt đầu làm việc với OpenCV trong Python. Tuy nội dung khá cơ bản, nhưng nó đã trình bày một số khái niệm quan trọng để chuẩn bị cho những ứng dụng tiếp theo. Cùng gặp lại nhau trong các bài viết tiếp theo nhé!

Tác giả: Lê Hoàng Thoại, Đặng Thị Tường Vy

1