2015-06-15 23 views
5

Tôi đang cố xử lý ảnh. Có một bức ảnh lá RGB và tôi chỉ muốn rút lá của nó thôi.MATLAB - Cách loại bỏ nền bóng mờ trên hình ảnh

Thủ tục tôi làm theo là

  1. tôi đọc hình ảnh từ tập tin
  2. Chuyển đổi sang dạng grayscale
  3. Áp dụng 5x5 bộ lọc trung bình
  4. Convert to BW

enter image description here

enter image description here

Khi bạn thấy bóng ở góc dưới bên phải dính vào hình ảnh BW. Có một phương pháp để chọn lá chỉ.

I = imread(files{404}); 

hcsc = vision.ColorSpaceConverter;   
hcsc.Conversion = 'RGB to intensity';  
Ig = step(hcsc, I); 

medFilt= vision.MedianFilter([f f]); 
Ig = step(medFilt, Ig); 

at = vision.Autothresholder;   
Ibw = step(at, Ig); 
+3

Tại sao bạn chuyển đổi sang dạng grayscale? Bạn có lẽ có thể chuyển đổi sang HSV và chọn lá dựa trên một phạm vi màu sắc. Xem [anwer này] (http://stackoverflow.com/a/4064205/2586922) –

+0

@LuisMendo Tôi chưa bao giờ nghĩ vậy. Tôi sẽ thử. – zkanoca

Trả lời

1

Thay vì chuyển đổi sang hình ảnh màu xám, tôi chuyển nó sang HSV và tham gia V của nó. Nó kết quả tốt hơn bây giờ.

I = imread(files{404}); 

I = rgb2hsv(I); 

Ig = I(:,:,3); 

medFilt= vision.MedianFilter([f f]); 
Ig = step(medFilt, Ig); 

at = vision.Autothresholder;   
Ibw = step(at, Ig); 

enter image description here

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