Phát hiện kết cấu và thuộc tính vùng trên một hình ảnh


9

Tôi có một vấn đề thú vị mà tôi đang cố gắng giải quyết. Vì vậy, ví dụ, nếu chúng ta có một hình ảnh đen trắng chứa hai kết cấu (A và B), tôi muốn biết các giá trị pixel của các ranh giới sẽ bao phủ hoàn toàn các kết cấu riêng lẻ.

Tôi đã nghĩ đến việc sử dụng tương quan chéo, sẽ cho tôi một cụm các vị trí, của mẫu (truyền thuyết) trên hình ảnh nhưng có cách nào để sử dụng điều đó để lấy các giá trị pixel của các ranh giới (thường là không đều)? Ngoài ra, có cách nào khác tốt hơn để làm điều này?

Một ví dụ thực tế về điều này sẽ là trong việc phát hiện các vùng mưa trên bản đồ cho thấy ba mức độ mưa trong một năm. Mỗi cấp độ được gán một kết cấu có trong chú giải, được sử dụng để khớp kết cấu trên cùng một hình ảnh.


4
Sẽ rất hữu ích nếu bạn thực sự chia sẻ các ví dụ và có lẽ một số giải pháp sơ bộ bạn đã thử
Ivo Flipse

3
Chắc chắn tải lên một số hình ảnh ví dụ để chúng tôi hiểu những gì bạn đang làm. Giống như một số khu vực được lấp đầy rắn và những khu vực khác được nở chéo? nps.gov/sagu/naturescience/images/ từ
endolith

Trong trường hợp bạn có MATLAB, bạn có thể sử dụng hộp công cụ xử lý ảnh. Nếu không, trang web của họ vẫn cung cấp một cái nhìn tổng quan tốt về các thuật toán tiêu chuẩn mà bạn có thể muốn sử dụng, ví dụ như hàm bwconncomp .
Ông White

Câu trả lời:


1

Đây là một quy trình đơn giản:

  1. Chỉ định các phép đo kết cấu cho từng khu vực trong hình ảnh.
  2. Sử dụng thuật toán ghi nhãn / kết nối vùng (hoặc thuật toán phát triển vùng) để tham gia các vùng lân cận có cùng số đo kết cấu.
  3. Thực hiện một thuật toán theo cạnh đơn giản để theo dõi đường viền của từng khu vực.

Các biện pháp kết cấu của Law là một kỹ thuật cũ hơn nhưng vẫn hữu ích để xác định kết cấu trong hình ảnh và chúng có thể đủ để bạn phân biệt kết cấu A với kết cấu B trong suốt hình ảnh. Xem phần "Các biện pháp năng lượng kết cấu luật" trong bài viết Wikipedia:

http://en.wikipedia.org/wiki/ImageSphereure

Bước đầu tiên, tính toán tất cả các biện pháp kết cấu và xác định biện pháp cụ thể nào (ví dụ: Cạnh hoặc Điểm) cho phép bạn phân biệt một kết cấu với kết cấu khác một cách dễ dàng nhất. (Nếu bạn đăng một số hình ảnh, tôi có thể giúp bạn xác định thước đo kết cấu.)

Nếu bạn chỉ có hai kết cấu, A và B, thì bạn có thể coi chúng là tiền cảnh và hậu cảnh, và thuật toán ghi nhãn vùng tiêu chuẩn sẽ hoạt động. Để dễ nhìn thấy những gì đang diễn ra trong quá trình xử lý, bạn có thể tạo một hình ảnh mới bằng cách gán A texels (yếu tố kết cấu, khối kết cấu nhỏ) cho màu trắng và B texels cho màu đen. Các thuật toán ghi nhãn vùng và / hoặc theo đường viền sau đó sẽ tìm thấy các vùng trắng và đen được kết nối. Hàm findContours () trong OpenCV sẽ hoạt động tốt.

http://en.wikipedia.org/wiki/Connected-component_labeling

Bài viết Wikipedia tương tự bao gồm cả thuật toán đa truyền thống cũng như thuật toán vượt qua một lần. Tôi đã không triển khai thuật toán một lần được mô tả ở đó, nhưng tôi đã làm việc với thuật toán một lần được mô tả trong bài báo "Thuật toán dán nhãn thành phần sử dụng kỹ thuật theo dõi đường viền" của Chen và Chang. Bài viết của Chen và Chang cũng mô tả một thuật toán theo đường viền tiêu chuẩn có thể được thực hiện nhanh chóng.

Nếu bạn có nhiều hơn hai kết cấu, thì bạn có thể sử dụng thuật toán dịch chuyển đầu nguồn hoặc trung bình để phân cụm các vùng lại với nhau sau khi bạn đã ánh xạ lại kết cấu thành màu sắc. Mặc dù việc ánh xạ lại từ kết cấu này sang màu sắc là không cần thiết, nhưng nó làm cho quá trình gỡ lỗi và hiểu dễ dàng hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.