Merhaba üstadlar.
Elimde bir resim var örneğin 1000x1000 olsun
bu resmin belirsiz bir yerinde (Ortada kenarda veya köşede) 300x150 ebatında bir görüntü olsun (Mesela tarayıcıdan taranan kimlik)
Delphi ile sadece görüntü olan yeri almak istiyorum. Yani beyaz yerleri tespit edip çıkaracak ve bana sadece 300x150 ebatındaki görüntüyü verecek.
Bunu nasıl yaparım????
Bir resmin boş yerlerini atmak.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Bir resmin boş yerlerini atmak.
Buradaki linkteki OCR makalasini bir incelemek isteyebilirsin.
İçerisinde harfleri boşluklardan ayırarak ayıran (DilimlereAyir procedure kasıt) kısım senin istediğin kısımdır.
İçerisinde harfleri boşluklardan ayırarak ayıran (DilimlereAyir procedure kasıt) kısım senin istediğin kısımdır.
Re: Bir resmin boş yerlerini atmak.
Abi çok detaylı bakamadım ama.. galiba pixel renklerine bakmamız gerekiyor. Fakat belli bir renk aralığını nasıl karşılaştırabiliriz. Örneğin 1 beyaz olsa ve gri de 10 olsa beyaz ve gri arasındaki ara renklerde 1 ile 10 arasında olsa 1 ile 5 arasını beyaz varsayıp temizlerdik renkllerde belli bir aralık nasıl belirtebilirim?mrmarman yazdı:Buradaki linkteki OCR makalasini bir incelemek isteyebilirsin.
İçerisinde harfleri boşluklardan ayırarak ayıran (DilimlereAyir procedure kasıt) kısım senin istediğin kısımdır.
Re: Bir resmin boş yerlerini atmak.
Yine aynı makalede siyahbeyazyap procedure'üne bakabilirsin.erkan1525 yazdı:Abi çok detaylı bakamadım ama.. galiba pixel renklerine bakmamız gerekiyor. Fakat belli bir renk aralığını nasıl karşılaştırabiliriz. Örneğin 1 beyaz olsa ve gri de 10 olsa beyaz ve gri arasındaki ara renklerde 1 ile 10 arasında olsa 1 ile 5 arasını beyaz varsayıp temizlerdik renkllerde belli bir aralık nasıl belirtebilirim?mrmarman yazdı:Buradaki linkteki OCR makalasini bir incelemek isteyebilirsin.
İçerisinde harfleri boşluklardan ayırarak ayıran (DilimlereAyir procedure kasıt) kısım senin istediğin kısımdır.
Re: Bir resmin boş yerlerini atmak.
Üstad rgd karşılaştırması yaparak Blue değerine bakıp 0-255 aralığında beyaz mı değil mi karar verebilirsin.
0: beyaz
255 siyah
sen, rgb nin blue değerinin 120 üstünde kalanı renkli, altında kalanı beyaz olarak kabul edebilirsin.
Tabii bunu yaparken pixelleri yeniden oluşturup 120 nin altında ve üstünde kalanlara tek renk atayarak deneme yapmanı tavsiye ederim.
Kolay gelsin.
0: beyaz
255 siyah
sen, rgb nin blue değerinin 120 üstünde kalanı renkli, altında kalanı beyaz olarak kabul edebilirsin.
Tabii bunu yaparken pixelleri yeniden oluşturup 120 nin altında ve üstünde kalanlara tek renk atayarak deneme yapmanı tavsiye ederim.
Kolay gelsin.
Hayat yalanlarla dolu bir aşktır.
Gerçek aşka erişince o da biter.
Gerçek aşka erişince o da biter.
Re: Bir resmin boş yerlerini atmak.
Doğru RGB yi hiç akıl edemedimalguli yazdı:Üstad rgd karşılaştırması yaparak Blue değerine bakıp 0-255 aralığında beyaz mı değil mi karar verebilirsin.
0: beyaz
255 siyah
sen, rgb nin blue değerinin 120 üstünde kalanı renkli, altında kalanı beyaz olarak kabul edebilirsin.
Tabii bunu yaparken pixelleri yeniden oluşturup 120 nin altında ve üstünde kalanlara tek renk atayarak deneme yapmanı tavsiye ederim.
Kolay gelsin.

-
- Üye
- Mesajlar: 152
- Kayıt: 16 May 2014 11:23
Re: Bir resmin boş yerlerini atmak.
Bu sordugunuzu daha once yapmistim fakat her beyaz pixel atamazsijiz. En kosedeki pixellere kadar inmeniz gerek ornegin resim tam ortada olsun sagdan soldan ustten ve alttan taramaniz lazim en son karsilastiginiz beyaz pixel baz almaniz lazim ornegin mavi kirmizi yesil turuncu ve asil goruntunun icinde.beyazida iceren bir kare olsun ve bu kare beyaz bir tuvalin icinde olsun sagdan tariyoruz sagdan 20.pixel beyaz fakat 21.pixel turuncu burada 20.pixel sinir olarak alinmali ve sagdan tarama durdurulmali cunku asil almak istediginiz resmin icinde de beyaz renk olabilir ki vardir da
bu yontemleri her kose icin yaptikdan sonra olculer ve konumlar zaten matematiksel olarak cikiyor sol taramada 300.pixel sinir olsun sag taramada 700.pixel olsun right scan- left scan = 700 - 300 = 400 pixel genislik crop islemini ise 300 den baslatip genisligi 400 verdiginizde istediginizi elde edeceksiniz yukaridan asagisi icinde ayni mantigi yapiniz ve islem tamam.
Kolay gelsin

Kolay gelsin
Re: Bir resmin boş yerlerini atmak.
Aynen öyle....
Benim gibi acemiler için yazıyorum.
En üstten aşağı doğru
en sağdan sola doğru
en alttan üste doğru ve
en soldan sağa doğru taratıp beyaz olmayan pixel ile karşılaşınca sınır bu demelisiniz.
Tabi mesela bir tarayıcıdan aldığınız resmin arkaplanı tamamen beyaz olmaz. Gri pembemsi mavimsi v.s v.s olabilir
Bunun için rengin Reg Green ve Blue değerini alın. Renk ne kadar açıksa R,G,B değerleri o kadar yüksek olur. Her değeri tek tek karşılaştırmanıza gerek yok.
Bulduğunuz değerleri toplayın max 255*3=765 olabilir. Yani 765 beyazdır. Bu değer küçüldükçe renk (pembe mavi gri farketmez) koyulaşır.
Renk sınır mı değilmi karar vermek için aşağıdaki gibi bir karşılaştırma yapmalısınız.
Tolerans değeri 150 olsun.
if RGBToplam< (765-150) then
sınırı bulduk...
Benim gibi acemiler için yazıyorum.
En üstten aşağı doğru
en sağdan sola doğru
en alttan üste doğru ve
en soldan sağa doğru taratıp beyaz olmayan pixel ile karşılaşınca sınır bu demelisiniz.
Tabi mesela bir tarayıcıdan aldığınız resmin arkaplanı tamamen beyaz olmaz. Gri pembemsi mavimsi v.s v.s olabilir
Bunun için rengin Reg Green ve Blue değerini alın. Renk ne kadar açıksa R,G,B değerleri o kadar yüksek olur. Her değeri tek tek karşılaştırmanıza gerek yok.
Bulduğunuz değerleri toplayın max 255*3=765 olabilir. Yani 765 beyazdır. Bu değer küçüldükçe renk (pembe mavi gri farketmez) koyulaşır.
Renk sınır mı değilmi karar vermek için aşağıdaki gibi bir karşılaştırma yapmalısınız.
Tolerans değeri 150 olsun.
if RGBToplam< (765-150) then
sınırı bulduk...