Lý thuyết


1. Cài đặt thư viện matplotlib

pip install matplotlib
# kiểm tra thư viện đã cài được chưa 
python
import matplotlib
matplotlib.**version**

2. Hiển thị nhiều ảnh trên 1 plot dùng thư viện matplotlib

# khai báo thư viện
import cv2
import matplotlib.pyplot as plt
  
# gán file ảnh 01.jpg vào biến img
img = cv2.imread('01.jpg')
  
# chuyển sang ảnh xám
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# chuyển ảnh gốc hệ màu BGR sang hệ màu RGB để hiển thị trên matplotlib
# vì matplotlib chỉ hiển thị ảnh màu RGB
img_RGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

# sử dụng thư viện matplotlib
# ví dụ hiển thị 3 ảnh trên cùng 1 plot dưới dạng ma trận 1 hàng 3 cột
# thứ tự ảnh sẽ được tính từ trái qua phải, từ trên xuống dưới

# tạo ô hiển thị ảnh đầu tiên ở vị trí 1 (hàng 1 cột 1)
plt.subplot(131), 
# show ảnh màu RGB
plt.imshow(img), 
# đặt tiêu đề cho ảnh
plt.title('Original Image'),
# tắt trục tọa độ
plt.axis('off')

# tạo ô hiển thị ảnh đầu tiên ở vị trí 2 (hàng 1 cột 2)
plt.subplot(132), 
# show ảnh xám
plt.imshow(img_RGB), 
# đặt tiêu đề cho ảnh
plt.title('RGB Image'),
# tắt trục tọa độ
plt.axis('off')

# tạo ô hiển thị ảnh đầu tiên ở vị trí 3 (hàng 1 cột 3)
plt.subplot(133), 
# show ảnh ảnh màu RGB
plt.imshow(img_gray, cmap = 'gray'),
# đặt tiêu đề cho ảnh
plt.title('Gray Image'),
# tắt trục tọa độ
plt.axis('off')

# hiển thị plot
plt.show()

image.png

3. Lật ảnh

Cú pháp: cv2.flip(src, flipCode[, dst] )

Parameters:

# import thư viện OpenCV
import cv2
  
# gán file ảnh 01.jpg vào biến img
img = cv2.imread('01.jpg')
  
# đặt tên cửa sổ hiển thị file ảnh 
# cv2.WINDOW_AUTOSIZE -> autosize window theo ảnh
# cv2.WINDOW_NORMAL -> fit ảnh trong window
cv2.namedWindow("Original RGB", cv2.WINDOW_NORMAL)

# lật ảnh theo chiều ngang (trái qua phải)
img_flip_vertical = cv2.flip(img, 0)

# lật ảnh theo chiều dọc (trên xuống dưới)
img_flip_horizontal = cv2.flip(img, 1)

# lật ảnh theo cả chiều ngang và chiều dọc
img_flip_both = cv2.flip(img, -1) 
  
# hiển thị file ảnh
cv2.imshow('Original RGB', img)
cv2.imshow('Flipped vertical image', img_flip_vertical)
cv2.imshow('Flipped horizontal image', img_flip_horizontal)
cv2.imshow('Flipped both image', img_flip_both) 
  
# đợi người dùng nhấn phím bất kì
cv2.waitKey(0)
  
# xóa toàn bộ cửa sổ đã tạo ra
cv2.destroyAllWindows()

image.png

4. Save ảnh

Cú pháp: cv2.imwrite(filename, image)

Parameters: