2011-11-13 41 views
10

Tôi có một hình ảnh mà trông như thế này:MATLAB xử lý hình ảnh của vòng tròn nhỏ

Bottle

Tôi có một công việc mà tôi nên khoanh tròn tất cả các chai xung quanh việc mở của họ. Tôi đã tạo một thuật toán đơn giản và bắt đầu làm việc đó. Thuật toán của tôi sau:

  • Threshold ảnh gốc
  • Do một số mở hình thái trong đó
  • Điền các lỗ rỗng
  • riêng phần của hình ảnh sử dụng đạo cụ khu vực như vậy mà chỉ khu vực này tương đương với miệng của chai được chọn.
  • Tìm centroid cho mỗi vòng tròn và vẽ xung quanh mỗi chai.

Tôi đã làm theo thuật toán ở trên và tôi có một số phần của hình ảnh xung quanh mà tôi vẽ một vòng tròn. Điều này là do tôi đã chọn khu vực từ khu vực miệng chai và tiếng ồn vẫn gần như giống nhau. Và vì vậy tôi mang lại một con số như thế này.

Việc xử lý áp dụng trên giao diện hình ảnh như thế này:

Enter image description here

Và hình ảnh cuối cùng của tôi sau khi vẽ vòng tròn trên ảnh gốc là như thế này:

Enter image description here

Tôi nghĩ Tôi có thể đối phó với vòng tròn thêm, đó là, vì một số phần màu trắng của hình ảnh vẫn như trong hình 2 bên dưới. Điều này có thể được lọc ra bằng cách sử dụng regionproping cho lập dị. Đó có phải là một ý tưởng tốt hay có một số cách tiếp cận khác cho điều này? Làm thế nào tôi sẽ đối phó với các chai khác phía sau kính và chọn chúng?

+1

một ý tưởng khác là sử dụng [Biến đổi thô] (http://en.wikipedia.org/wiki/Hough_transform) thành [phát hiện vòng kết nối] (http://www.cis.rit.edu/class/simg782/lectures) /lecture_10/lec782_05_10.pdf) – Amro

+0

bản sao có thể có của [Thuật toán kết hợp vòng tròn tốt nhất] (http://stackoverflow.com/questions/4387488/the-best-circle-fitting-algorithm) – abcd

+1

Có một số triển khai MATLAB có sẵn miễn phí [biến đổi Hough tròn] (http://www.mathworks.com/matlabcentral/fileexchange/?term=hough+transform+circle) trên MATLAB Central File Exchange. –

Trả lời

5

Hình ảnh mẫu đẹp mà bạn cung cấp cho câu hỏi của mình!

Một thứ bạn có thể sử dụng để phát hiện các chai còn lại (nếu có) là cấu trúc được xác định rõ của vị trí của các chai. Lưới 4 đến 5 của chai nên tương đối dễ định vị và khi lưới được đặt, bạn có thể kiểm tra xem chai có được phát hiện tại mỗi vị trí chai dự kiến ​​hay không.

đối với chai phát hiện thêm Với, bạn có thể sử dụng tính năng hình dạng như

  • lệch tâm,
  • thời điểm Hồ đầu tiên
  • một tỷ lệ giữa chiều dài chu vi hình vuông trên khu vực (được giảm thiểu cho một vòng tròn) details here

Nếu bạn có thể phát hiện lưới, bạn có thể dễ dàng xác định vị trí đó như một ngoại lệ (xa vị trí chai dự kiến) on) và loại bỏ phù hợp.

Chúc bạn may mắn với dự án của mình!

2

Tôi đã sử dụng phương pháp tương tự như đề nghị thứ ba midtiby bằng cách sử dụng tỷ lệ giữa diện tích và chu vi gọi là hình dáng yếu tố:

4π * Diện tích/chu vi^2

để phát hiện vòng tròn từ một hình ảnh đường viền truy (từ hình ảnh được ngưỡng) thành công lớn;

http://www.empix.com/NE%20HELP/functions/glossary/morphometric_param.htm

Về 4 chai unfound, điều này là khá khó khăn nếu không có kiến ​​thức tiên nghiệm về những gì nó là bạn đang nhìn vào (như đã thảo luận việc sử dụng lưới 4 x 5, sau đó nhìn từ trung tâm của mỗi ô). Tôi đã nghĩ rằng từ danh sách các đường nét, hầu hết sẽ là các đỉnh chai (mà bạn có thể kiểm tra bằng cách sử dụng các yếu tố hình dạng), tuy nhiên, một sẽ là một hình chữ nhật lớn. Nếu bạn có thể tìm thấy các chi của hình chữ nhật (từ đường viền lớn nhất về diện tích), sau đó loại bỏ nó khỏi hình ảnh thứ ba, bạn sẽ được trái với các vòng tròn một phần. Nếu bạn sau đó đường viền truy tìm những vòng tròn một phần và sử dụng một hỗn hợp của yếu tố hình dạng/phát hiện đường cong vv có thể giúp đỡ? Và có, chúc may mắn một lần nữa!

Các vấn đề liên quan