Buscar una imagen dentro de otra

Iniciado por SheKeL_C$, 22 Diciembre 2008, 21:23 PM

0 Miembros y 1 Visitante están viendo este tema.

SheKeL_C$

Creo que se crean muchas dudas al leer el titulo del post, pero ahora las resumire... Imaginaos algo parecido a "donde esta Wally" en el que a partir de dos imagenes, una la principal y la otra la del sujeto (Wally) y que comparando saque las coordenadas de donde esta.

Por supuesto que yo no quiero hacer lo de wally, es algo mas sencillo, no esta tan cargado el ambiente.

Mas o menos lo que yo quiero hacer es encontrar una imagen en un fondo solido

Zeroql

toma un calculo de distancia segun los pixeles que tenga la imagen
en vb creo que uin pixel equivale a 15 puntos
me refiero
si una imagen ekivale a height=615 para el valor en pixeles haces esto: 615/15=41 px

o tambien pudes usar dos imgs
una con la img original y el otro sin ninguna img pero con code al presionarla.... y la ubicas donde keiras

espero te haya sido de ayuda
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


vivachapas

mira hice este programa hace un tiempo con la idea de lograr capturas de pantalla de manera mas veloz para mi troyano. mi idea en ese entonces era tomar una captura de pantalla, enviarla al cliente y tb guardarla en el servidor, luego tomar una segunda y compararla ocn la primera y enviar solamente las partes q difieran...
bueno logre poder comparar 2 imagenes pequeñas, pero el problema es q para comparar los screen tienen q estar los dos cargaods en la pantalla... y obviamente en una pantalla no se peuden cargar 2 xD...

en fin el proyecto donde "experimente" quedo asi...
(decime si te sirve)

necesita: un combobox 2 picturebox 2 commandbutton:   (1 caption compara y el 2º limpiar)

Código (vb) [Seleccionar]
Dim Presionado As Boolean
Dim Color As ColorConstants

Private Sub Combo1_Click()
Select Case Combo1.Text
    Case "Rojo"
    Color = vbRed
    Case "Azul"
    Color = vbBlue
    Case "Verde"
    Color = vbGreen
End Select
End Sub

Private Sub Command1_Click()
Dim Ancho As Integer
Dim Alto As Integer
Dim PixX As Integer
Dim PixY As Integer
Dim PixColor As Double
Dim oPixColor As Double
Alto = Picture1.Height
Ancho = Picture1.Width
Picture1.DrawWidth = 1
Picture2.DrawWidth = 1
For PixX = 1 To Ancho Step 10
    For PixY = 1 To Alto Step 10
    PixColor = Picture1.Point(PixX, PixY)
    oPixColor = Picture2.Point(PixX, PixY)
    If Not PixColor = oPixColor Then
    Color = Picture1.Point(PixX, PixY)
    Picture2.PSet (PixX, PixY), Color
    End If
    Next PixY
Next PixX
Picture1.DrawWidth = 3
Picture2.DrawWidth = 3
End Sub

Private Sub Command2_Click()
Picture1.Cls
Picture2.Cls
End Sub

Private Sub Form_Load()
Picture1.Height = 1500
Picture2.Height = 1500
Picture1.Width = 1500
Picture2.Width = 1500
Picture1.DrawWidth = 3
Picture2.DrawWidth = 3
Picture1.BackColor = vbWhite
Picture2.BackColor = vbWhite
With Combo1
    .AddItem "Rojo"
    .AddItem "Verde"
    .AddItem "Azul"
End With
End Sub


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Presionado = True
Picture1.CurrentX = X
Picture1.CurrentY = Y
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Presionado = False Then Exit Sub
Picture1.Line -(X, Y), Color
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Presionado = False
End Sub

Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Presionado = True
Picture2.CurrentX = X
Picture2.CurrentY = Y
End Sub

Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Presionado = False Then Exit Sub
Picture2.Line -(X, Y), Color
End Sub

Private Sub Picture2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Presionado = False
End Sub


desp tendrias q modificarlo para q x ejemplo busque los pixeles del picture1 en el picture 2

espero q sirva

SALUDOS

viviz02

Gracias por el code, es muy bueno.

Lo guardare por si lo necesito en alguno de mis futuros proyectos.
tuentiAlert - Notificador de cambios en tu perfil de tuenti.

www.tuentialert.es
Ya esta disponible la v0.3 para descargar

jsbsan

En linux tenemos varios comandos para hacer este tipo de busquedas.

Lo he comentado en este enlace:
http://jsbsan.blogspot.com.es/2015/11/buscar-una-imagen-dentro-de-otra-y.html