Matlab पर छवि की छाया कैसे निकालें?

बिना छाया के फल कैसे प्राप्त करें?

जैसा कि आप छवि में देख सकते हैं, मैं ओत्सु विधि का उपयोग करके वस्तुओं को अलग करता हूं, लेकिन छाया परिणाम को सहज बनाती हैं। बिना छाया के ऑब्जेक्ट को अलग कैसे करें?

0
रंग घटकों द्वारा अंतर करना एक साधारण विचार है। उदाहरण के लिए, आरजीबी से एचएसवी में कनवर्ट करें। छायाएं ग्रे (कम एस) हैं, उम्मीद है कि वस्तुएं नहीं हैं
जोड़ा लेखक Luis Mendo, स्रोत

1 उत्तर

I = imread('YgmAf.jpg');  % your original image
imagesc(I)

I=rgb2hsv(I);
I1=I(:,:,2);   % change to hsv and select the channel with most clear contrast between object and shadow

thresholded = I1 > 0.23; %% Threshold to isolate lungs
thresholded = bwareaopen(thresholded,100);  % remove too small pixels
I2=thresholded.*I1;
I3=edge(I2,'canny',graythresh(I2));  % ostu method
I3 = imfill(I3,'hole');
figure,imagesc(I3)  %object binary image

Result image: enter image description here

0
जोड़ा
आपके समाधान के लिए धन्यवाद, यह काम किनारे से जुड़ा हुआ है। लेकिन मेरे डेटासेट में, किनारे पूरी तरह से कनेक्ट नहीं है। लेकिन मैं इस डेटा को डेटासेट के लिए विकसित करूंगा। धन्यवाद
जोड़ा लेखक el-Hakeem, स्रोत
तुम्हारा बहुत स्वागत है !
जोड़ा लेखक lennon310, स्रोत