Phân khúc vật liệu trong suốt một nửa, ví dụ như thủy tinh


11

Tôi hoàn toàn bế tắc về một vấn đề liên quan đến việc phân chia các vật thể thủy tinh. Tôi cần phải có được đối tượng chính xác nhất có thể. Cách tiếp cận của tôi là khác nhau. Lúc đầu, tôi đã cố gắng loại bỏ nền, để chỉ còn lại một số đường viền sắc nét. Nhưng điều đó chỉ hoạt động đối với các đối tượng có cạnh / độ dốc sắc nét. Nếu không thì chính đối tượng cũng bị loại bỏ. Tôi đã đăng hai hình ảnh khác nhau.

hình 1 hình 2

Tôi đã cố gắng loại bỏ nền thông qua các hoạt động hình thái, như giãn nở thang độ xám và một nhà tù trên đó. nhưng nó không giúp được gì nhiều sau đó, tôi đã thử một phương tiện k với k = 3 để tách nền đã sửa đổi tách khỏi giá trị xám và đen của kính. Điều đó không thành công trong một số trường hợp, nhưng không phải là tổng thể / trung bình. Tôi cũng đã cố gắng thực hiện phát hiện cạnh canny bằng bộ lọc làm mờ tổng thể, nhưng điều đó dẫn đến kết quả yếu hơn ở dạng đường viền mở, nhiều nhiễu, v.v. Trang.

Canny với kết quả ngưỡng tự động:

testimg = imread('http://i.imgur.com/huQVt.png');  
imshow(testimg)
imedges = edge(testimg,'canny');
imshow(imedges);

Tương tự với hình ảnh thứ hai.

đầu ra canny # 1 đầu ra canny # 2

Như bạn có thể thấy, có rất nhiều tiếng ồn bên trong và bên ngoài và tăng gấp đôi các cạnh từ đường viền glas. Thậm chí có những khoảng trống ở các cạnh.

Vì vậy, tôi cần lời khuyên của bạn để có được cách tiếp cận chung để xử lý vấn đề vật liệu nửa trong suốt này, không chỉ cho hai hình ảnh này.

1) Các ý tưởng khác để loại bỏ nền mà không làm hỏng đối tượng?

2) Các phương pháp phân đoạn khác để có được đối tượng tách khỏi nền?

Nếu có thể, thì với gợi ý Matlab, IPT hoặc hộp công cụ thống kê. Bất kỳ gợi ý khác cũng được chào đón!

Cảm ơn bạn đã trả lời trước. Trân trọng


Là nền luôn luôn giống hệt nhau?
endolith

gần, khác một chút vào tối hơn / sáng hơn.
mchlfchr

1
Việc trừ nền từ mọi hình ảnh sẽ là một sự khởi đầu, làm cho nó đồng nhất hơn: imgur.com/9WhcB
endolith

1
Ý anh là gì? Bạn có một hình ảnh của nền mà không có bất kỳ kính?
endolith

1
@DennisJaheruddin Tôi biết rằng một cạnh KHÔNG phải là một đường màu đen. Một cạnh được định nghĩa là thay đổi về cường độ / tần số, điều đó có nghĩa là các giá trị màu xám của nó thay đổi nhanh hơn hoặc ít hơn. Tuy nhiên, như bạn có thể thấy trong bối cảnh, phương pháp Canny sẽ không phải là vũ khí được lựa chọn ở đây, vì nền tảng tôi sẽ nhận được rất nhiều tiếng ồn (với Canny). Và tôi không thể dự đoán ngưỡng / sigma tự động. Vì vậy, tôi cần một phương thức loại bỏ nền, nhưng không phải là chính đối tượng.
mchlfchr

Câu trả lời:


3

Tại sao không chỉ sử dụng một filer vượt qua 2D FFT (guassian) đơn giản?

Tôi đã làm điều này thực sự nhanh chóng bằng MATLAB

Phân đoạn số 1 bằng cách sử dụng FFT vượt qua cao:

http://i47.tinypic.com/rbjxnd.jpg

Điều tương tự được thực hiện trên # 2.

Phân đoạn số 2 bằng cách sử dụng FFT vượt qua cao:

http://i45.tinypic.com/209kms0.jpg

Như bạn có thể thấy, khu vực nền và kính bị xóa sạch, và chỉ có các cạnh được vạch ra. Tôi đã không dành thời gian cho nó, nhưng bạn có thể ngưỡng đầu ra được lọc của HP để có các cạnh sắc nét hơn hoặc đẩy HP bị cắt cao hơn.

Đây có phải là kết quả nhiều hơn bạn đang tìm kiếm để có được?


1

Đây không phải là cố gắng trả lời toàn bộ câu hỏi, nhưng tôi có một ý tưởng về "làm sạch hình ảnh" .

Bạn nói rằng bạn đã thử các hoạt động hình thái rồi, và đây là một biến thể của ý tưởng, hy vọng là một bản nâng cấp.

Bài viết này: A. Vichik, R. Keshet, D. Malah: Hình thái tự kép trên bán nguyệt cây và các ứng dụng đề xuất một cách để tăng cường các toán tử hình thái cổ điển theo cách có thể thêm các đặc tính mong muốn hơn cho chúng.

Bài viết đề nghị chọn một đại diện phân cấp của hình ảnh theo các thuộc tính mong muốn và sau đó đề xuất một phương pháp để xác định các toán tử như xói mòn, giãn nở, mở, mũ trên đại diện đó . Nói cách riêng của họ:

Chúng tôi đã trình bày một khung chung để sản xuất các toán tử hình thái mới (...)

Tôi đã giải thích các cấu trúc hình cây, phân cấp này trong phần thứ hai của câu trả lời này ( cách tiếp cận ngữ nghĩa ) , mà bạn có thể thêm Cây cây đầu nguồn được đề cập trong bài viết tôi liên kết ở đây (và một lần nữa) .

Nó là một bản nâng cấp để (trích dẫn các tác giả) "hình thái toán học thang độ xám truyền thống" bởi vì các hoạt động giữ các thuộc tính mong muốn của các biểu diễn . Ví dụ: nếu biểu diễn phân cấp của bạn là tự kép, thì các toán tử của bạn sẽ thực sự tự kép (ví dụ: so sánh với đóng mở bán tự kép bằng cách xây dựng lại không thực sự tự kép.)

Bài viết được liên kết cũng trình bày một số kết quả trong việc lọc nhiễu - bạn có thể so sánh kết quả của chúng từ bài viết (và từ Luận án được tham chiếu trong bài viết) với những gì bạn cần (ít nhất là trực quan) và xem liệu nó có hiệu quả với bạn không trước khi bắt đầu để mã.

Vì vậy, trong khi chọn cây đại diện đơn giản nhất (tối đa / tối thiểu) sẽ mang lại chính xác các thao tác cổ điển, việc chọn cây tự kép phù hợp nhất với nhu cầu của bạn có thể mang đến cho bạn một cách tiếp cận đủ mạnh mẽ.

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.