Что нового

Сравнение изображений с помощью функции CompareBytes() из библиотеки ProSpeed

xmurik

Новичок
Сообщения
4
Репутация
0
Идея такова - сравнить два изображения побайтно и получить на выходе цифру не совпадающих пикселей.

Возникло несколько проблем:

1) Краш AutoIt при значении $S_ByteSize более 3000.
2) Сравнение двух копий одного изображения дает постоянно изменяющееся значения различающихся байтов.

Никто с этой библиотекой не сталкивался ?

Сама функция
Код:
;###################################################################################################################################
; CompareBytes
; Funtion to compare 2 data blocks
; syntax = CompareBytes(MemoryPointer1, MemoryPointer2, ByteSize, Tolerance)
; MemoryPointer1 = Pointer to memory
; MemoryPointer2 = Pointer to memory
; ByteSize       = How many bytes to compare
; Tolerance      = How many bytes may be different
; Return Value = Total Bytes that are different
;###################################################################################################################################
Func CompareBytes($S_MemoryPointer1, $S_MemoryPointer2, $S_ByteSize, $S_Tolerance)
	$C_Compare = DllCall($S_DLL, "long", "CompareBytes", _
								 "long", $S_MemoryPointer1, _
								 "long", $S_MemoryPointer2, _
								 "long", $S_ByteSize, _
								 "long", $S_Tolerance)
	Return $C_Compare[0]
EndFunc


Тестовый код
Код:
#include "Prospeed30.au3"


Local $pic1 = LoadFileImage(@ScriptDir & "\" & "photo.png")
Local $pic2 = LoadFileImage(@ScriptDir & "\" & "photo1.png")

Local $iFileSize = FileGetSize(@ScriptDir & "\" & "photo.png")
MsgBox(0,"",$iFileSize)
Local $iFileSize1 = FileGetSize(@ScriptDir & "\" & "photo1.png")
MsgBox(0,"",$iFileSize1)

Local $FX1 = InitFX($pic1)
Local $FX2 = InitFX($pic2)
MsgBox(0,"",$FX1)
MsgBox(0,"",$FX2)

Local $comp = CompareBytes($FX1, $FX2, 1318, 50)

MsgBox(0,"",$comp)
 

Вложения

  • ProSpeed.rar
    133.8 КБ · Просмотры: 9
Автор
X

xmurik

Новичок
Сообщения
4
Репутация
0
Сравнить между собой два изображения, найти наиболее похожее из списка, найти % несовпадений.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
xmurik сказал(а):
Сравнить между собой два изображения, найти наиболее похожее из списка, найти % несовпадений.
Примеры из этой темы http://autoit-script.ru/index.php?topic=15740.5
не подойдут?
 
Верх