Visual Basic - pixeles??????????????????????

Life is soft - evento anual de software empresarial
 
Vista:

pixeles??????????????????????

Publicado por hector (8 intervenciones) el 20/01/2005 15:18:53
hola amigos tengo el siguiente problema :
Definición Bloque:
Se dispone de dos archivos .BMP que poseen fotos a color casi iguales
lo que se desea es comparar pixel a pixel ambas fotos y entregar
un parámetro de salida que señale en %, la cantidad de pixeles
que son diferentes (cpdif)
Como ejemplo supongamos dos fotos casi iguales en que solo difieren
en que una de ellas, tiene un circulo de cualquier color , entonces
el resultado debiera ser (área circulo / área foto) *100

Entradas : archivo1.bmp y archivo2.bmp
Salida : en variable llamada cparchi con el contenido de
(cpdif)

no tengo idea de como hacerlo pero lo debo hacer urgente por favor orientenme,

gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pixeles??????????????????????

Publicado por bla (230 intervenciones) el 22/01/2005 19:50:03
Crea dos picturebox en un formulario, y entonces:
Dim w As Long
Dim h As Long
Dim wm As Long
Dim hm As Long
Dim lTotal As Long
Dim lDifs As Long
With Picture1
.AutoRedraw = True
.AutoSize = True
.ScaleMode = 3
.Picture = LoadPicture(App.Path & "\dib1.bmp")
End With
With Picture2
.AutoRedraw = True
.AutoSize = True
.ScaleMode = 3
.Picture = LoadPicture(App.Path & "\dib2.bmp")
End With

wm = IIf(Picture2.ScaleWidth > Picture2.ScaleWidth, Picture1.ScaleWidth, Picture2.ScaleWidth)
hm = IIf(Picture1.ScaleHeight > Picture2.ScaleHeight, Picture1.ScaleHeight, Picture2.ScaleHeight)

For w = 0 To wm - 1
For h = 0 To hm - 1
lTotal = lTotal + 1
If Picture1.Point(w, h) <> Picture2.Point(w, h) Then
lDifs = lDifs + 1
End If
Next
Next
MsgBox "Porcentaje de pixels diferentes: " & 100 * lDifs / lTotal & "%"

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar