Computer >> Máy Tính >  >> Lập trình >> Python

Phát hiện các đường viền trong hình ảnh bằng OpenCV

Trong chương trình này, chúng tôi sẽ phát hiện các đường viền trong một hình ảnh. Đường bao có thể được giải thích đơn giản là một đường cong nối tất cả các điểm liên tục có cùng màu hoặc cường độ. Các đường bao là một công cụ hữu ích để phân tích hình dạng, phát hiện và nhận dạng đối tượng.

Hình ảnh gốc Phát hiện các đường viền trong hình ảnh bằng OpenCV

Thuật toán

Step 1: Import OpenCV.
Step 2: Import matplotlib.
Step 3: Read the image.
Step 4: Convert the image from bgr2rgb.
Step 5: Convert the rgb image to grayscale.
Step 4: Perform thresholding on the image.
Step 5: Find contours on the image.
Step 6: Draw contours on the image.
Step 7: Display the output.

Mã mẫu

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('testimage.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
ret, binary = cv2.threshold(gray, 127,255, cv2.THRESH_BINARY_INV)
contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

image = cv2.drawContours(image, contours, -1, (0,255,0), 2)
plt.imshow(image)
plt.show()

Đầu ra

Phát hiện các đường viền trong hình ảnh bằng OpenCV