CÔNG NGHỆ THÔNG TIN >> BÀI VIẾT CHỌN LỌC

Detection edges của ảnh sử dụng OpenCV-Python

Đăng lúc: 04:50 PM - 05/01/2024 bởi Charles Chung - 664

Trong bài này tôi sẽ hướng dẫn các bạn phát hiện cạnh của ảnh bằng phương pháp Canny sử dụng OpenCV trong Python

Giới thiệu

Những thay đổi đột ngột về cường độ điểm ảnh đặc trưng cho các cạnh. Chúng ta cần tìm kiếm những thay đổi như vậy ở các pixel lân cận để phát hiện các cạnh. Chúng ta có thể sử dụng hai thuật toán phát hiện cạnh quan trọng có sẵn trong OpenCV: Phát hiện cạnh Sobel và Phát hiện cạnh Canny. Trong bài này chúng ta sẽ tìm hiểu phương pháp phát hiện cạnh của ảnh bằng Canny.

Canny Edge detect là một trong những phương pháp phát hiện cạnh phổ biến nhất được sử dụng hiện nay vì nó rất mạnh mẽ và linh hoạt. Bản thân thuật toán tuân theo quy trình ba giai đoạn để trích xuất các cạnh từ hình ảnh. Thêm vào đó là tính năng làm mờ ảnh, một bước tiền xử lý cần thiết để giảm nhiễu. Điều này làm cho nó trở thành một quá trình gồm bốn giai đoạn, bao gồm:

  • Giảm nhiễu
  • Tính toán gradient cường độ của hình ảnh
  • Ngăn chặn các cạnh sai
  • Ngưỡng trễ

Sau đây là cú pháp để áp dụng tính năng phát hiện cạnh Canny bằng OpenCV:

Canny(image, threshold1, threshold2)

Ví dụ: Phát hiện cảnh của ảnh theo phương pháp Canny

Code mẫu

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# import thư viện
import cv2
# đọc hình ảnh
pic1=cv2.imread('images/anh-doi-ban-than-nu.jpg')
# resize ảnh cho nhỏ lại 0.2 ảnh gốc
imageresized=cv2.resize(pic1,None,fx=0.2,fy=0.2)
# xác định cạnh của ảnh
imagedetection=cv2.Canny(imageresized,150,150)
# hiển thị hình ảnh
cv2.imshow('imageresized',imageresized)
cv2.imshow('imagedetectionedge',imagedetection)
cv2.waitKey()
cv2.destroyAllWindows()

Kết quả

thay lời cảm ơn!

QUẢNG CÁO - TIẾP THỊ