Resim Kordinatı Bulma (Soru) - Google Fan Webmaster Forum
Google Fan Webmaster Forum  
herşeyi sana yazdım

Geri git   Google Fan Webmaster Forum > Genel Programlama > Programlama
KEY
Kayıt ol Articles Sosyal Gruplar Forumları Okundu Kabul Et

Programlama C ++ , C # , COMPONENT, DELPHI , FLASH, JAVA - JSP, VISUAL BASIC ,VISUAL BASIC.NET ,WML, XML

Cevapla
 
LinkBack Seçenekler
  1  
Alt 05-02-2012, 03:10:31
Üyeliği durduruldu
 
Standart Resim Kordinatı Bulma (Soru)

Merhaba arkadaşlar
vb.nette bir proje üzerinde çalışıyorum yapamadığım şeyler var bunlardan bir tanesini sormak istedim bana zor geldi belki 2 saniyede yapabilecek arkadaşımız vardır diye şansımı denemek istedim

2 resim kutusu koyuyoruz

1. resim kutusunun adı genel olsun
2. resim kutusunun adı özel olsun

genele printscreen görüntüsünü atıyoruz

özele ise printscreenden kestiğimiz bir bölümün resmini atıyoruz(kapat butonu gibi)

genelde özeli aratıp kordinatını bulmamız gerkiyor işte bunu yapamadım bir arkadaş binary ye dönüştürüp arama yaparsak bulabileceğimizi söyledi ama yapamadım


şimdiden teşekkürler



örnek resimler




Genel





Özel
Alıntı ile Cevapla
  2  
Alt 06-02-2012, 00:38:00
Üyeliği durduruldu
 
Standart

yardımcı olabilecek yokmu
Alıntı ile Cevapla
  3  
Alt 06-02-2012, 04:53:09
 
Standart

o iş o kadar kolay değil hocam. resimleri pixel pixel taratacaksın da sonra belirli alanlarda karşılaştırma yapacaksın da.. hem bu işlem uzun sürer hem hata oranı yüksek olur. belki bunun için yazılmış özel apiler kullanılabilir ama onlarda ücretli olur..

millet bir plaka resmini okutturabilmek için k*çını yırtıyor

ama aklım şöyle bir şey geliyor, renk değişimi yaparak o bahsettiğin butonun rengini ayıklayabilirsin.. bu konu kolay bir iş değil. image processing olayını araştır. en iyi biçimde de matlab de yaparsın ama ona da girdin mi işin içinden çıkmak zor handle numarasını al diyeceğim swf demiştin bana sanırm ondaki kontrollerden handle da alamazsın.. yani pek iç acıcı bir sonuç yok ... olsa bile uğraştıracak gibi görünüyor, değer mi? bilemem..

şuanlık bu kadar aklıma geldi..


kolay gelsin
Alıntı ile Cevapla
  4  
Alt 06-02-2012, 12:20:07
 
Standart

Diyelim A resmi 1000*500 olsun.
Diyelim B resmi 20*20 olsun.

Öncelikle belirteyim, yorabilir sistemi.
A resminde 0.pixelde başlatıp 1000.pixele gidene kadar, 20*20 boyutunda resim böleriz. Böldügümüz resmi B resmiyle karşılaştırırız. Eğer resim o ise, döngüyü durdurup pixel i alabilirsin. Resim En aşağıda ise, aşağıdan başlatman dogru olacaktır, sağda ise 1000.pixel den azalta azalta bölmen dogru olacaktır.
Alıntı ile Cevapla
  5  
Alt 06-02-2012, 12:45:47
Üyeliği durduruldu
 
Standart

Alıntı:
sefakdas Nickli Üyeden Alıntı Mesajı göster
Diyelim A resmi 1000*500 olsun.
Diyelim B resmi 20*20 olsun.

Öncelikle belirteyim, yorabilir sistemi.
A resminde 0.pixelde başlatıp 1000.pixele gidene kadar, 20*20 boyutunda resim böleriz. Böldügümüz resmi B resmiyle karşılaştırırız. Eğer resim o ise, döngüyü durdurup pixel i alabilirsin. Resim En aşağıda ise, aşağıdan başlatman dogru olacaktır, sağda ise 1000.pixel den azalta azalta bölmen dogru olacaktır.
çözünürlüğü 600 400 yapıp yeneyeyim
Alıntı ile Cevapla
  6  
Alt 06-02-2012, 19:06:53
Eposta Aktivasyonu Gerekmekte
 
Standart

Ana resim 1000x1000
ikinci resim 30x30
çözünürlüğünde olduğunu varsayalım.
Önce ikinci resmin ilk pixelini alırsın.(RGB değerini yani.)
Daha sonra ana resmi ilk pixelden başlayıp yatay olarak taramaya başlarsın.
1x1 , 2x1 , 3x1 .. diye. 1000x1 olunca alt satıra geçersin 1x2 1x3 ... diye gider.
Tararken bulduğun pixel, ikinci resmin ilk pixeliyle eşleşiyorsa bu sefer birinci resmin bi sonraki pixeli ile ikinci resmin ikinci pixelinin eşleşip eşleşmediğine bakarsın.Eğer eşleşiyorsa 3. diye gidersin.Daha sonra alt satırları da doğrulatırsan eşleşme vardır ve eşleşmenin başladığı kordinatları kullanıcıya verirsin.Eğer eşleştirirken, eşleşme olmazsa bu sefer ikinci resmin ilk pixelini tekrar ele alıp taramaya devam edersin.
Çözünürlük arttıkça döngü sayısı da artar.Bazı optimizasyonlarla performansı arttırabilirsin.
Alıntı ile Cevapla
  7  
Alt 06-02-2012, 19:34:57
Programcı
 
Standart

Yapacağın işlem çok basit aslında, öncelikle her iki resmide pixel değerlerini diziye alırsın.

100x100 ana resim olsun, 20x20 aranacak resim olsun, aradığın küçük resmin ekran dışına taşmadığını varsayarsak (ki böyle olmalı yoksa tam olarak emin olamazsın)

ilk resimde 1x1 den 80x1 e kadar gider pixel değerini kontrol edersin, aynı ise satırın kalanı ve alt satırda ki değerler için kontrol yaparsın, bunu 80x80 koordinatına kadar kontrol edersin.


Son olarak mümkün olduğunca renk sayısını az tutmaya çalış. Dolaylı yoldan hızını artıracaktır.

Anladığım kadarı ile ekranda bir yere mouse click yaptıracaksın, sayfa adresini verirsen inceledikten sonra belki daha fazla yardımcı olabilirim.
__________________
Alıntı ile Cevapla
  8  
Alt 06-02-2012, 19:48:02
 
Standart

resmi binary'ye dönüştürerek çok hızlı sonuç bulabilirsiniz, ama resmi griye dönüştürerek de aynı sonucu bulabilirsiniz. daha önce c#'ta resmi griye dönüştüren bir uygulama yazmıştım: http://hasanhuseyincakir.com.tr/prog...isual-c-sharp/ .net olduğu için vb.net'e kolaylıkla çevirebilirsiniz kodları.

aranan resim: 1000*1000 çözünürlükte olsun, aradığınız resim ise 20*20 px olsun.
resim bilgileri bmp formatında 554 byte tutar. 555. byte: 1. px'in R değeri, 556. byte 1. px'in G değeri, 556. byte 1. px'in B değeridir. ve bu şekilde sırayla gider.

her iki resmi de gri'ye dönüştürün, ardından küçük resmin 1. px'in 1. byte'ı ile büyük resmin 1. byte'ı ile karşılaştırın eşleşme varsa küçük resmin 2. px'ine geçin, eşleşme yoksa büyük resimde 2. px'e geçin

örneğin küçük resmin ilk 20 byte'ını büyük resmin 300. px'de buldunuz, küçük resmin 2. satır bilgilerini büyük resimde aramaya, büyük resmin 1300. px'inden aramaya devam edin. (1000 ekledik çünkü 1 satırda 1000 px var. (bunun için +3000 byte eklemeniz lazım, eğer aramayı gri resimde yapıyorsanız).

anlattıklarım karmaşık gelmişse pm olarak msn gönderin brute force search konusunda yardımcı olayım, sadece algoritma olarak ama, vb bilmiyorum malesef
__________________
Signatürü:
Alıntı ile Cevapla
  9  
Alt 07-02-2012, 00:38:34
 
Standart

Paint.Net yükleyin, mouse ile üzerinde gezindiğiniz her pixelin koordinatlarını görebilirsiniz.

Yükledikten sonra Resim>Tuval Boyutu>Çözünürlük değerini piksel/cm seçin. Tamam'a tıklayın. Üst menüden "Birim" değerini de piksel olarak seçtikten sonra mouse ile üzerine geldiğiniz her pikselin koordinatını sağ alt köşede görürsünüz.
Belki daha kısa yolu, photoshopta vs. vardır fakat benim bildiğim bu. Umarım işinize yarar.
Alıntı ile Cevapla
Cevapla


Bookmarks

Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 07:45:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş

Hosting by Radore Hosting

İçerik sağlayacı paylaşım sitelerinden biri olan R10.net WebMaster Forum Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. R10.net hakkında yapılacak tüm hukuksal Şikayetler adresi ile iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde R10.net yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatlarımız size dönüş yapacaktır.
ARGUS_OK

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252