Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
1040
Tıklama
0
Öne Çıkarma
Vb.net Resim karşılarştırma
R
13 yıl
Yüzbaşı
Konu Sahibi

Herkes Bu Resmin Küçük Halini görünce Aynı gibi görürü ama Bixellerine Kadar Büyütünce Programsal olarak birbirinin kopyası değil.

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 >



R
13 yıl
Yüzbaşı
Konu Sahibi

biraz karışık oldu ama lafın kısası Ekranda 30 tane bu resimden var he hepsi birbirinin aynısı değil ben bir resmin benzerini bulmak istiyorum



B
13 yıl
Binbaşı

Tüm piksel renklerini diziye atıp diğer resimlerdeki piksellerle karsilastirabilirsin



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
R
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: bersgurs

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


Bu mesaja 1 cevap geldi.
H
13 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
R
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: hasan1980125

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


end if


Next ia


bm_bytes.unLockBitmap()
bm_bytes2.unLockBitmap()


Bu mesaja 1 cevap geldi.
H
13 yıl
Yüzbaşı

Ö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.


Bu mesaja 1 cevap geldi.
R
13 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: hasan1980125

Ö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?


Bu mesaja 1 cevap geldi.
H
13 yıl
Yüzbaşı

Önceki mesajdada belirttiğim gibi; eğer denedin olmuyorsa image processing olayına bakıcaksın.
opencv lütüphanesi falan vardı galiba yanlış hatırlamıyorsam vb'de çalışır mı bilmiyorum ama.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.