Tin tổng hợp

OpenCV – Bài 4: Tìm trung tâm của hình, vùng đường viền

  • 24/10/2021
  • Tâm của 1 hình đại diện toạ độ cho toàn trong xử lý ảnh, ngoài các đặc tính là vị trí tâm hình còn có các đặc tính như diện tích, hướng của hình,

    Làm thế nào để tìm tâm của 1 hình, đối với các hình đối xứng có quy luật thì việc tìm tâm khá dễ dàng như tìm tâm hình vuông, elip, hình tròn, chữ nhật… nhưng với các hình bất kỳ thì làm như thế nào?

    Trọng tâm của một hình dạng là trung bình cộng (tức là trung bình cộng) của tất cả các điểm trong một hình dạng.

    Giả sử một hình dạng bao gồmn điểm khác biệt \ mathbf {x_1} ... \ mathbf {x_n} , sau đó centroid(Trọng tâm) được cung cấp bởi

     

      \ [\ mathbf {c} = \ frac {1} {n} \ sum ^ n_ {i = 1} \ mathbf {x} _i \]

    Image moment là gì. Image Moment là giá trị trung bình thuộc tính của hình, có thể tìm thấy một số thuộc tính cụ thể của hình như bán kính, diện tích, tâm, v.v. Để tìm tâm của hình ảnh, thường chuyển đổi hình sang định dạng nhị phân và sau đó tìm trung tâm của hình.

    Centroid(trọng tâm) được cho bởi công thức: –

     

      \ [C_x = \ cfrac {M_ {10}} {M_ {00}} \]

     

      \ [C_y = \ cfrac {M_ {01}} {M_ {00}} \]

     

    C_x là tọa độ x và C y là tọa độ y của tâm và NS biểu thị moment, tham khảo trang https://learnopencv.com/find-center-of-blob-centroid-using-opencv-cpp-python/ về cách tính trọng tâm hình

    copy ảnh sau vào project:

    các bước thực hiện :

    • Chuyển đổi sang thang độ xám.
    • Làm mờ để giảm nhiễu tần số cao để làm cho quá trình phát hiện đường viền của chúng tôi chính xác hơn.
    • Binarization – chuyển đổi ảnh nhị phân chỉ có trắng đen kiểu đảo ngược của hình ảnh. Thông thường, phát hiện cạnh và ngưỡng được sử dụng cho quá trình này. Trong bài này sẽ áp dụng ngưỡng.

    ta có code sau:

    kết quả:

    Lưu ý: sử dụng lọc ngưỡng nhị phân kiểu đảo ngược (cv2.THRESH_BINARY_INV) bit để được ảnh với hình màu trắng nền màu đen để quá trình tìm đường viền chạy đúng.

    Tiếp theo tiến hành tìm đường viền bao quanh , mỗi 1 đường viền bao được tìm thấy tiến hành tính toán trọng tâm của hình. Ta có code sau:

    kết quả :

    toàn bộ code:

    Dựa vào tâm của vật ta tính được vị trí của vật so với vị trí gốc quy định, phục vụ cho bài toán xác định trí vật sau này.