Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Các phép toán số học trên ảnh với OpenCV trong Python

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

Các phép toán số học trên ảnh với OpenCV trong Python Các phép toán số học trên ảnh với OpenCV trong Python

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ả

Các phép toán số học trên ảnh với OpenCV trong Python

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ả

Các phép toán số học trên ảnh với OpenCV trong Python

Lưu ý

  • Hai ảnh phải cùng kích thước và cùng số kênh (channels).
  • addWeighted thường dùng cho hiệu ứng chuyển cảnh, watermark, HDR.
  • subtract dù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.