Tüm piksel renklerini diziye atıp diğer resimlerdeki piksellerle karsilastirabilirsin
Evet Zaten O şekilde Ekran görüntüsünü Tarıyorum Ama Görüldüğü gibi Aranan Resimden 30 tane olduğu halde 1 resim çıkıyor. Yani resimler Tam Tamına Aynı Değil! Halbuki 29 tane daha var bir rengin tonunun farklı olması uyumsuzluk için yeterli
Bi mesajında ne diyosun diğerin başka bişey söylüyon. Birebir aynı mı olmasını istiyosun yoksa benzeri mi olması gerekli. Benzerini bulman daha zor aynısı bulmandan. RGB'de +10/-10 toleransla bi dene belki çalışır. Yani rgb'yi karşılaştırıken 1.resmin x:1y:1'deki pixelinin r'si atıyorum 50 ise benzer olması için 2.resmin x:1y:1'deki pixelinin r'sinin 40 la 60 arası olması gerekiyor. Bu yöntemi dene kesin işe yarar demiyorum ama. Çünkü rgb'de doğrudan her renk kanalı bi anlam taşımıyo. üçünü birlikte değerlendirmek daha doğru olabilir. Eğer olmazsa tolerans değerini arttırarar denersin. Oda olmadı image procesing konusuna baq.
Bi mesajında ne diyosun diğerin başka bişey söylüyon. Birebir aynı mı olmasını istiyosun yoksa benzeri mi olması gerekli. Benzerini bulman daha zor aynısı bulmandan. RGB'de +10/-10 toleransla bi dene belki çalışır. Yani rgb'yi karşılaştırıken 1.resmin x:1y:1'deki pixelinin r'si atıyorum 50 ise benzer olması için 2.resmin x:1y:1'deki pixelinin r'sinin 40 la 60 arası olması gerekiyor. Bu yöntemi dene kesin işe yarar demiyorum ama. Çünkü rgb'de doğrudan her renk kanalı bi anlam taşımıyo. üçünü birlikte değerlendirmek daha doğru olabilir. Eğer olmazsa tolerans değerini arttırarar denersin. Oda olmadı image procesing konusuna baq.
Tıpkısının Aynısını bulabiliyorum ama Benzerini bulmam gerekli
Ben Lockbit i kullanrak çok hızlı tarıyorum.Getpixel setpixel çok yavaş.o yüzden bu yönrtemi kullanıyorum
Sizce Byte cinsinden Karşılaştırılan bir veriyi Tolreansını nasıl azaltıp arttırabilirim Eğer bilmiyorsanız hergangi bir tolerans yöntemide olur
dim arananresim, Screencapture as bitmap
Dim bm_bytes As New BitmapBytesRGB24(Screencapture) Dim bm_bytes2 As New BitmapBytesRGB24(arananresim)
bm_bytes.LockBitmap()' Gerekli kod modülde Var bm_bytes2.LockBitmap()
For ia As Integer = 0 To mybitmap.Height * bm_bytes.RowSizeBytes
If bm_bytes.ImageBytes(ia) = bm_bytes2.ImageBytes(0) Then
' eğer Aranan Resimin ilk parçası bulunursa Burdan Diğer kısmı tarayacak
Önce her bir kanal için tek tek bak. Yani karşılaştıracağın resim B olsun. Karşılaştırdığın A.
(A.pixel[0,0].R > B.pixel[0,0].R - tolerans) VE (A.pixel[0,0].R < B.pixel[0,0].R + tolerans) ise bu koşul senin benzerlik kriterini doğruluyor diye varsaycaksın. Tabi bunu bütün pixellerde ve bütün kanallarda yapman gerek. Bu yöntem her durumda işe yaramayabilir. Bunu test ettikten sonra eğer olmazsa scalar olarak bak. Oda olmadı image processing konusu var. O kesin çözüm olmakla birlikte bi hayli zordur. Kolay gelsin.
Önce her bir kanal için tek tek bak. Yani karşılaştıracağın resim B olsun. Karşılaştırdığın A.
(A.pixel[0,0].R > B.pixel[0,0].R - tolerans) VE (A.pixel[0,0].R < B.pixel[0,0].R + tolerans) ise bu koşul senin benzerlik kriterini doğruluyor diye varsaycaksın. Tabi bunu bütün pixellerde ve bütün kanallarda yapman gerek. Bu yöntem her durumda işe yaramayabilir. Bunu test ettikten sonra eğer olmazsa scalar olarak bak. Oda olmadı image processing konusu var. O kesin çözüm olmakla birlikte bi hayli zordur. Kolay gelsin.
Merhaba Dediğiniz Yöntemi Tam Anlamıyla Denedim ancak başarısız.Resmin toleransı ile mümkün değil üstteki resme Bakarsanız mesesa 4x4 pixele denk gelen renk diğer resimdeki 4x4 karesindeki renk pixeli bambaşka Yani Toleransla iş mümkün değil.
Sanırım biraz ileri düzeye kaşıyor ama bir bilginiz var mı Amacım hakkında?
Ben şimdi 1 resmin benzerini yani yanındaki resme eşit olduğunu nasıl ıspatlayabilirim.
Bir resmin benzerini bulmak yani
< Resime gitmek için tıklayın >