Soru sorResimden seçtiğim nesneyi kırparak başka bir değişkene aktarma işlemi
bigman tarafından 4 yıl önce soruldu

Arkadaşlar merhaba resimden seçtiğim nesneyi kırparak başka bir değişkene aktarma işlemini yapmaya çalışıyorum ve resimdeki gibi bir sonuç ile karşılaşıyorum boşta kalan siyah yerleri silme şansımız var mıdır ? Farklı bir yolla yapılabilir mi ?
Kodlarım:
A=rgb2gray(imread('C:\Users\nazmi\Desktop\resim.jpeg'));

[satir,sutun]=size(A);
for i=1:satir
for j=1:sutun
if A(i,j)<100
C(i,j)=A(i,j);
end
end
end
imshow(C);

5 Cevap
bigman tarafından 4 yıl önce cevaplandı

bigman tarafından 4 yıl önce cevaplandı
Caglar Yönetici tarafından 4 yıl önce cevaplandı

Bu resim A'dan mı C'den mi?

bigman tarafından 4 yıl önce cevaplandı

Resmin orjinali A yeni oluşturduğum değişken C
resmin orjinal hali: https://hizliresim.com/6qfmKN

Caglar Yönetici tarafından 4 yıl önce cevaplandı

100'den kucuk satır ve sutunlar demişsiniz. Biliyorsunuz, 1'inci satır ve sutun sol üste denk geliyor. Haliyle kırptığınız kısım aslında sol üstteki boşluk ve nesne. 
Daha doğru bir alanı kırpabilirsiniz, mesela satır ve sutun degerleri 100'en kucuk ama 50'den buyuk gibi.
Ya da, C'de tamamı sıfır olan satır ve sutunları silerseniz de boşluklar gitmiş olacaktır:

a =

0 0 0 0 0
0 0 0 0 0
0 0 1 1 1
0 0 1 1 1
0 0 1 0 1


b = a(any(a,1), any(a,2))

b =

1 1 1
1 1 1
1 0 1

 
Tabi bunlar üstünkörü çözümler. C'den anladığım kadarıyla segmentation da yapıyorsunuz, hiç piksellerin sayısıyla uğraşmadan segmentlere gore kırpmak daha saglıklı olabilir.