OpenCV cho phép thực hiện các phép toán số học trên ảnh như cộng, trừ, và các phép bitwise. Hướng dẫn này minh họa phép cộng có trọng số (blending) và phép trừ.
Cài đặt OpenCV
pip install opencv-python==4.1.1.26
1. Phép cộng ảnh (Blending) - cv2.addWeighted()
Công thức: dst = α·img1 + β·img2 + γ. Dùng để trộn hai ảnh với trọng số α, β và giá trị gamma γ.
Ảnh đầu vào

Mã nguồn
import cv2
image_one = cv2.imread('_1.jpg')
image_two = cv2.imread('_2.jpg')
# Trộn 50% ảnh 1 + 50% ảnh 2, gamma = 0
result_image = cv2.addWeighted(image_one, 0.5, image_two, 0.5, 0)
cv2.imshow('Final Image', result_image)
if cv2.waitKey(0) & 0xFF == 27: # nhấn ESC để thoát
cv2.destroyAllWindows()Ảnh kết quả

2. Phép trừ ảnh - cv2.subtract()
Trừ giá trị pixel của ảnh 2 từ ảnh 1. Kích thước và kiểu ảnh phải giống nhau.
Mã nguồn
import cv2
image_one = cv2.imread('_1.jpg')
image_two = cv2.imread('_2.jpg')
result_image = cv2.subtract(image_one, image_two)
cv2.imshow('Final Image', result_image)
if cv2.waitKey(0) & 0xFF == 27:
cv2.destroyAllWindows()Ảnh kết quả

Lưu ý
- Hai ảnh phải cùng kích thước và cùng số kênh (channels).
addWeightedthường dùng cho hiệu ứng chuyển cảnh, watermark, HDR.subtractdùng cho phát hiện thay đổi, background subtraction.
Kết luận
OpenCV cung cấp các hàm tối ưu hóa cho phép toán ảnh. Hãy thử nghiệm với các trọng số khác nhau để tạo hiệu ứng mong muốn.