1. sayfa
Zor bir odevmis Bahsettiginiz algoritmalari bilmiyorum. Lakin Ff0000 de kirmizi dir ff1111 de kirmizidir ffffff beyaz olsa da aslinda icinde kirmizi kadar kirmizi vardir. bayaa zor. Bence bahsi gecen algoritmalara abanmak lazim. Ama ben tembel adamim. Resmin kalitesini once 256 renge dusurur onun uzerinden islem yaparim. |
Cevap için teşekkür ediyorum. Son cümle benim de aklıma yattı şimdi. Biraz olsun işi kolaylaştıracak gibi görünüyor. Fakat dediğim gibi verdikleri algoritmalar hakkında Türkçe kaynak bulmak neredeyse imkansız. Muhtemelen bu algoritmaların birer Türkçe karşılığı vardır diye düşünüyorum ama içinden çıkamadım bir türlü.. |
Arkadaşlar, Median Cut Algoritması ile ilgili Word Dökümanına http://www.dosya.tc/server29/smpnjr/MEDIANCUTALGORITMASI.rar.html linkinden erişip indirebilirsiniz. Kaynak Türkçedir. |
Resmi byte array'a çevirip rahatlıkla yapabilirsin bu işi. |
Projeyi bitireli 2 ay oluyor neredeyse ama gene de teşekkürler sayın oguzhangedik, güzel ve anlaşılır bir paylaşım olmuş. Emeğinize sağlık ![]() İlginiz için size de şükranlarımı sunuyorum sayın K. Başta biz de sizin gibi düşünmüştük fakat olaylar sürekli gelişti, önünü alamadık ![]() |
Kusura bakmayın konuyu üstlerde görünce yeni sandım ![]() |
Nasıl yaptığınızı yazabilir misin ? Merak ettim biz de öğrenelim :) |
Kısaca özetleyeyim o zaman: Resmi öncelikle piksel piksel taratıp renk kodlarını elde ettik. Daha sonra bu resmi dört eş parçaya böldük ve bu eş parçalardaki renk kodlarını tek tek kontrol ettik. Sonra parçalardaki farklı renk sayılarını tespit ettik. Biraz absürd olacak ama örneğin resim 4 adet pikselden oluşuyor diyelim. 1.piksel kırmızı, 2.piksel mavi, 3. sarı ve 4.sü de yine kırmızı. (burada renk isimlerini verdim ama normalde #ff55dd gibi renk kodları ile işlem yapıyoruz) Burada ilk pikseli diğerleri ile kontrol ediyoruz. Başta ilk değeri 0 olan bir int değişken tanımladığımızı farzedelim. Eğer 1.piksel, kontrol edilen pikselden farklı ise, değişkeni 1 artırıyoruz, aynı renk ise değiştirmiyoruz. Böylelikle parçadaki farklı renk sayısını buluyoruz. Mesela verdiğim bu örnekte 3 farklı renk çıkıyor. (k,m,s) 4 eş parçanın tümünü bu işleme tabi tutuyoruz. En çok sayıda farklı renk hangi parçada ise, artık o parçayı ele alıyoruz. Diğer 3 parça ile işimiz bitiyor. Sonra elde ettiğimiz bu parçayı da 4 eş parçaya bölüyor ve aynı işlemleri bu parçalara da uyguluyoruz. Rekürsif bir yapı var anlayacağın. "Peki bu işlem nereye kadar sürecek?" diye soruyorsundur muhakkak. Başta kullanıcıdan aldığımız bir seviye var. Yani ilk önce kullanıcıya kolay-orta-zor şeklinde 3 adet zorluk seviyesi sunuyoruz. Her seviye, belirli miktarda renk getiriyor ekrana. Mesela orta seviyeyi seçtiğimde 11 adet renk kutucuğu geliyor ekrana. (Ödevde bizden istenen bu şekilde idi). İstenen kutucuk sayısını, zorluk seviyesi belirlendiği anda int bir değişkene atıyoruz. Resimdeki farklı sayı miktarı, bizden istenen kutucuk sayısına(biraz önce dediğim 11 gibi bir değer) ulaşınca döngüyü kırıyoruz ve işlem bitiyor. Zaten döngünün sonunda birbirine oldukça yakın renk tonları ortaya çıkıyor. Sonra bu renkleri kutucuklara dizmek kalıyor. http://i.hizliresim.com/mlo2y4.png Biraz karışık anlattığımın farkındayım ama umarım faydalı olmuştur. Bu anlattığım Median Cut oluyor. Scalar Quantization'ı burada anlatabileceğimi sanmıyorum ![]() |
Yok yok gayet güzel anlattın bence :) Böyle proje ödevi veren okullar varmıymış, hocanız kimse kıymetini bilin :) Bi şey daha öğrendim teşekkür ettim |
Rica ederim, faydam olduysa ne mutlu bana ![]() |
Merhaba, öncelikle paylasim icin tessekürler. Beinde java ile senin yaptigin projeye yakin bir proje yapmam gerekiyor. Logolari analiz edip histogramlarini cikarip, hangi renklerden olustugunu bulmam gerekiyor. Resmi pixel pixel okumayi ve histogramlari cikarmayi yaptim fakat su median cut algoritmasini yapamiyorum. Sorun resmi dört parcaya böl derken, cikarmis oldugumuz pixel degerlerinden mi 4 parcaya bölmeliyiz, yoksa resmi yeniden isleyip mi dörde bölmeliyiz? Sadece sormak istdim, bana bu projenin kodlarini yolluyabilirmisin? Tessekürler @çemçük |
Scalar Quantization : Bir Görüntü İşleme Algoritmasıdır. Kullanım amacı ise, Bir resim üzerinde bulunan farklı renk tonlarını ve bu tonların sayısını bulmanın, daha doğrusu ençok kullanılan renk tonlarını bulmanın oldukça işlemci yorucu olmasından ileri gelmektedir. Bu algoritma sayesinde, bir resimde en çok kullanılan renk tonlarını, olabildiğince az işlemci kullanarak bulabiliyoruz. Algoritmayı sırasıyla madde madde inceleyecek olursak: - Önce resim bir Bitmap'e alınır ve var olan boyutu, %10 - %20 oranına kadar küçültülür.(Resize) Örneğin 480x800 --> 48x80 gibi... - Ardından yeniden boyutlandırmış olduğumuz resmimizin derinliğini ~%33 yaklaşık 3'te 1 oranına düşürüyoruz. Resimlerin derinliği genelde 24 bit olur. Bunu resime sağ tık -> Özellikler 'e tıklayıp -Ayrıntılar- kısmından görebiliriz. İşte bu 24 bitlik derinliği 8 bit'e düşürüyoruz. - Son olarak ta bu işlemler sonucu elde ettiğimiz Bitmap'in üzerinde bir for döngüsüyle tüm pixellerini dolaşıyoruz ve en çok kullanılan renk tonunu buluyoruz. Scalar Quantization bundan ibaret. Bu yöntemler dizinine göre kodunuzu şekillendirebilirsiniz. Hem Resimi yeniden boyutlandırma, hemde derinliğini azaltma kodunu İnternetten rahatlıkla bulabilirsiniz. Umarım faydalı olur. |
1. sayfa
Okuldan bir adet proje yapmamız istendi. Kısaca özetleyeyim: Bir adet resim alınacak ve pictureBox'a yüklenecek. Daha sonra bu resim, pixel pixel taranarak renk kodları çıkarılacak. Buraya kadar sıkıntı yok. Fakat buradan sonra resimde en fazla miktarda mevcut olan rengi tespit etmemiz istendi. Örneğin resmimizde en çok sarı renk hakim diyelim. Resmin içinde yer alan sarı rengin tüm tonları bir listeye atılacak. İşte burada iki adet algoritma kullanmamız istendi: SCALAR QUANTİZATİON ve MEDİAN CUT.
Bu iki algoritma hakkında pek Türkçe döküman bulamadım. Bu noktada bana yardım edebilir misiniz? Şimdiden teşekkürlerimi sunuyorum.
Not: Programlama dili olarak c# kullanılacak.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.