Hàm OpenCV trong Python: Xử lý và Hiển thị Hình ảnh

Đọc, Hiển thị và Lưu Hình ảnh với OpenCV

  1. Hàm imshow

Hàm imshow dùng để hiển thị hình ảnh trong cửa sổ, cửa sổ sẽ tự động điều chỉnh kích thước cho phù hợp với hình ảnh. Chúng ta cũng có thể sử dụng module imutils để thay đổi kích thước cửa sổ hiển thị. Định nghĩa hàm chính thức như sau:

cv2.imshow(ten_cua_so, hinh_anh)

Tham số thứ nhất: Tên cửa sổ (chuỗi ký tự) Tham số thứ hai: Đối tượng hình ảnh, có kiểu ndarray từ numpy

Ví dụ:

cv2.imshow('hinh_goc', hinh_rgb)   # Hiển thị hình gốc
cv2.imshow('hinh_goc', imutils.resize(hinh_rgb, 800))  # Sử dụng imutils để điều chỉnh kích thước hiển thị
cv2.imshow('hinh_xam', imutils.resize(hinh_xam, 800))
if cv2.waitKey(0) == 27:
    cv2.destroyAllWindows()
  1. Hàm imwrite

Hàm imwrite dùng để lưu hình ảnh vào bộ nhớ cục bộ, định nghĩa chính thức:

cv2.imwrite(ten_file_luu, hinh_anh)

Tham số thứ nhất: Tên file hình ảnh cần lưu (chuỗi ký tự) Tham số thứ hai: Đối tượng hình ảnh, có kiểu ndarray từ numpy

cv2.imwrite('hinh_rgb.jpg', hinh_rgb)   # Lưu hình ảnh dưới dạng file jpg
cv2.imwrite('hinh_xam.png', hinh_xam) # Lưu hình ảnh dưới dạng file png
  1. Hàm hủy cửa sổ

Khi sử dụng hàm imshow để hiển thị hình ảnh, chúng ta cần hủy cửa sổ hiển thị trong chương trình, nếu không chương trình sẽ không thể kết thúc bình thường. Có hai hàm hủy cửa sổ phổ biến:

(1) cv2.destroyWindow(ten_cua_so) # Hủy một cửa sổ cụ thể Tham số: Tên cửa sổ cần hủy

(2) cv2.destroyAllWindows() # Hủy tất cả các cửa sổ, không cần tham số

Khi nào nên hủy cửa sổ? Chắc chắn không thể hủy cửa sổ ngay khi nó xuất hiện vì chúng ta cần xem nó. Có hai cách:

(1) Để cửa sổ tồn tại trong một khoảng thời gian rồi tự động hủy; (2) Chờ nhận lệnh từ bàn phím, như nhấn phím cụ thể để kết thúc cửa sổ mong muốn

Cả hai trường hợp trên đều sử dụng hàm cv2.waitKey. Đầu tiên xem định nghĩa hàm:

cv2.waitKey(thoi_gian_mili_giay)

Tham số duy nhất thoi_gian_mili_giay là số nguyên, có thể dương, âm hoặc bằng 0, ý nghĩa và thao tác khác nhau, tương ứng với hai trường hợp trên

(1) thoi_gian_mili_giay > 0: Thời gian được tính bằng mili giây, sau khoảng thời gian này hình ảnh sẽ tự động hủy

# Chờ 10 giây rồi hủy tất cả cửa sổ hình ảnh
if cv2.waitKey(10000):
    cv2.destroyAllWindows()

# Chờ 10 giây rồi hủy cửa sổ có tên 'hinh_goc'
if cv2.waitKey(10000):
    cv2.destroyWindow('hinh_goc')

(2) thoi_gian_mili_giay

Thẻ: opencv python xử lý hình ảnh Pillow Ma trận

Đăng vào ngày 21 tháng 6 lúc 09:43