OpenCV đọc ảnh đen trắng (grayscale)

Ảnh màu trên máy tính thường sử dụng hệ màu red-green-blue (đỏ - xanh lục - xanh lam) viết tắt là RGB. Bộ màu này có khả năng biểu diễn 256 * 256 * 256 = 16777216 (16 triệu màu), mặc định OpenCV đọc ảnh vào ở dạng ảnh màu. Xem shape của ảnh sau khi đọc thường có dạng (dài, rộng, 3).

img

Ảnh đen trắng (gọi là grayscale), chỉ có 256 màu từ 0 đến 255 (từ đen tới bớt đen tới trắng). Khi đọc vào, sẽ chỉ thấy shape của array (dài, rộng).

import cv2 as cv

cim = cv.imread("/home/hvn/Pictures/anhmau.jpeg")  # cv.IMREAD_COLOR
print(cim.shape)
# (1068, 600, 3)

gim = cv.imread("/home/hvn/Pictures/anhmau.jpeg", cv.IMREAD_GRAYSCALE)
print(gim.shape, "To new crop size: ", gim.shape[0]//2, gim.shape[1]//2)
#(1068, 600) To new crop size:  534 300

cut = gim[:gim.shape[0]//2, :gim.shape[1]//2]
cv.imwrite("gray.jpg", cut)

Kết quả thu được 1/4 góc trên trái bức ảnh ban đầu, đen trắng:

grayscale.

Hết.

Đăng ký ngay tại PyMI.vn để học Python tại Hà Nội TP HCM (Sài Gòn), trở thành lập trình viên #python chuyên nghiệp ngay sau khóa học.