Python İle Resim Pixel Yoğunluğunu Okuma ?
-
Başlık çok açıklayıcı olmamıs olabilir.
yukarıdaki resmi 1 ve 0 lar ile okumaya çalışıyorum.
y ve x ekseninde yukarıdaki resmi pixel olarak 1 ve 0 ile okudumuzda,
x ekseninde 0 inci pixelden son pixele 33 kadar yoğunluğu (y eksenine göre toplam) sıraladığımızda
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 6. 10. 8. 8. 8. 11. 17. 21. 32. 32. 26. 19. 10. 6. 6. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
ve aynı şekilde y ekseni için sıraladğımızda
[ 1. 2. 3. 4. 4. 4. 5. 6. 5. 6. 6. 7. 7. 8. 9. 11. 14. 14. 14. 12. 11. 7. 5. 5. 7. 11. 9. 4. 2. 2. 2. 3. 3. 3. 3. 2.]
2 adet listemiz oluşuyor.
listelerin başlangıcı 0 ıncı pixel den 35 e ve 33 gidiyor.
Bu listelerde max ve min yoğunluk olan index aralıklarını bulmak istiyorum. x ekseni için örn en büyükler (17. 21. 32. 32. 26. 19) 23 ve 28 arasındaki pixel ler,
0 hariç en küçükler (10. 6. 6. 1. ) 30 ve 33 pixeller arası
bunu bir türlü kodlayamadım, yardımcı olabilir misiniz ?
-
Ne iş için olduğunu anlayamadım. Ne için kullanılacak? Bölümleme yapmadan nereye göre yoğunluk karşılaştırılacak? Görüntü her zaman tek parça mı?
...ve can alıcı soru: Şeklin ağırlık merkezi daha işe yarar değil mi?
-
YeniHarman bunu yazdı
Ne iş için olduğunu anlayamadım. Ne için kullanılacak? Bölümleme yapmadan nereye göre yoğunluk karşılaştırılacak? Görüntü her zaman tek parça mı?
...ve can alıcı soru: Şeklin ağırlık merkezi daha işe yarar değil mi?
Şekillerin düzensizliğinden dolayı ağırlık merkezi işe yaramadı.
Hocam yön ok lar üzerinde çalışıyorum, yön bulma konusunda sıkıntı yaşıyorum. Görüntü her zaman tek parça.
şöyle bişey geldi aklıma uzun bir yöntem.
listeyi 4 er 4 er bir eksilterek toplamları karşılaştırmak gibi
-
Sadece bu veriden bir şey çıkarmak beni aştı. Yatay ve dikey histogramlar bir sonuç üretti mi?
Dikey histogram
[ 1
2
3
4
4
4
5
6
6
8
0
0
]
yatay histogram
[ 0
0
5
4
5
0
...] gibi.
-
YeniHarman bunu yazdı
Sadece bu veriden bir şey çıkarmak beni aştı. Yatay ve dikey histogramlar bir sonuç üretti mi?
Dikey histogram
[ 1
2
3
4
4
4
5
6
6
8
0
0
]
yatay histogram
[ 0
0
5
4
5
0
...] gibi.
sağol hocam, histogramları anlamaya çalışıyorum şimdi.
-
Kadane’s Algorithm
-
Ocr algoritmalarinda (basit) train isleminde bu yontemi kullaniyorlar. Onlara bakabilirsin istersen. (Hatta universitede pattern recognition dersinde boyle birsey yapmistik)
-
soruyu tam anlamamakla birlikte anladigim kadariyla cevaplayayim :)
pixelleri yatay ve dikey olarak saydirip yazdirmissin (o verileri dikey ve yatay histogram gibi düsünebiliriz) ve en cok yogunlugun hangi aralikta oldugunu bulmaya calisiyorsun..
Böyle ise: su sekil bir sey yapabilirsin..
Öncelikle bu araligi nasil dinamik yaparsin onu bilmiyorum ancak sabit aralik üzerinden gidersek yani 4 index deger araligina bakarak gitmek istersen
dizinin ilk 4 elemanindan baslayarak toplayacaksin
var max=0, baslangic=0, bitis=0;
Döngü
var sonuc dizi[i] +dizi[i+1] +dizi[i+2] +dizi[i+3]
if(sonuc>max)
{
baslangic = i;
bitis = i+3;
}
i++;
--- Döngü bitti
print(En cok pixel araligi baslangic ve bitis. Toplam pixel: max)
kisaca aciklarsam, ilk dört elemani aliyorsun ve sayisal degerlerine bakiyorsun ve max degeri ile karsialstiriyorsun, max degeri en yüksek pixel sayisini tutuyor. eger max'tan büyükse o araligi baslangic ve bitis degerlerine yaziyorsun ve max degerine toplam pixel sayisini yaziyorsun. Daha sonra diziyi 1 kaydiriyorsun ayni islemi 2. elemandan itibaren toplam 4 eleman alip yapiyorsun.. daha sonra yine bir kaydiriyorsun.. döngü sartini toplam yatay ve dikey index sayisina göre belirleyeceksin vee istersen 4'lü gruplara ayirmak yerine toplam yatay ve dikey index sayisi kaca tam bölünüyorsa ona göre yapabilirsin yani 3'e tam bölünüyorsa 3 sayisinin toplamina bakarsin, 4 e tam bölünüyorsa üstte yaptigim gibi (dizi[0] + dizi[1]... gibi ) 4 sayinin toplamina, 5 e bölünüyorsa 5 sayinin toplamina.. bunlardan baska biriyse en standard olarak 3 ya da 4 sayiyi toplarsin..
umarim anlatabilmisimdir :)
kolay gelsin
-
Renk 2 bit mi?
-
Hangi ölçekte yoğunluk arıyorsun?
1 piksel lik ölçekte ararsan her beyaz piksel 0 her siyah piksel 1 yoğunlukta olur..
2x2 mı 3x3 mü 4x4 mü?
Düşey eksende yoğunluk arıyorsan matrisin her satırındaki 1 leri toplat
Yatay eksende yoğunluk arıyorsan her sütun vektöründeki 1leri ... hmm bunları yapmışsın sanırım..
Senin sorunun ölçek.. yogunlugu da tarif edip olceklendirmen gerek
1 piksel çözünürlükte bakarsan yoğunluk tarifin 2bit olur dolu boş gibi bu da resmin kendisi çıkar
Alansal yorgunluğu söz konusu piksel ve temas ettiği diğer 8 pikselle 0 ila 9 arası bir yoğunluk ölçeğin olur.(hepsi beyazsa 0 hepsi siyahsa 9)
Tabi köşe ve kenara gelen pikseller için yoğunluğu düzeltmen gerek..
Örnek köşe elemanda 9 değil 4 pikselin olacak bunu 4/9la çarpacaksın bunu her bir piksel için yaparsan yoğunluk haritan çıkar sanırım..
.
kenar elemanda 6 elemana bakabileceksin burdada 6/9 ile
Ya da yüzde olarak incelenen bölgede radyus dahilinde dolu piksellerin inceleme bölgesindeki piksel sayısına [4▪ 6▪ya da 9'a]oranı x 100 deyip yüzdelik bir harita çıkarırsın..
Atom hacminin yuzde 99.999999u boştur ama çekirdeğe bakarsan 10 üzeri bilmem kaçlar mertebesinde yoğunluk vardır.. ölçek yani..
Filin neresini tutarsanız orasını görürsünüz..
-
ltcelik bunu yazdı
Filin neresini tutarsanız orasını görürsünüz..
Konu nasıl buraya geldi