PDA

Просмотр полной версии : Поиск изображения по образцу


Hwma
03.09.2009, 18:18
Помогите пожалуйста составить алгоритм поиска изображения в изображении. Есть изображение (картинка) и есть образец другого изображения, который может присутствовать на исходном изображении. Каким образом можно найти этот образец на изображении? Придумал пока только такой вариант, что из образца возьму одну строчку шириной в 1 пиксель и буду попиксельно читать исходное изображение в поисках этой строчки. А как найти прямоугольник?

scrat
03.09.2009, 19:09
нейросети, детка

St0nX
03.09.2009, 21:32
Для чего тебе такой алгоритм? Если для распознания капчи то тебе в сторону скелетизации изображения копать надо...

St0nX
03.09.2009, 21:53
Можно попробовать представить секцию в Image в файле bmp в виде матрицы и искомое изображение тоже. Далее блоками сравнивать и сдвигать.

AKYLA
04.09.2009, 04:30
На PHP что-то подобное есть
http://habrahabr.ru/blogs/php/55926/

А вообще нейросети конечно нужно, если что посложнее.

Вот кусок на делфи, с какой-то проги, там по базе с фотками сравнивается картинка которую ты подсовываешь:

Procedure CompareBitmap(Const BitmapA, BitmapB: TBitmap;
VAR Total, Sim, Diff: Integer);
// Total:total des pixel, Sim:Pixels similaires, Diff:Pixels dirrfents
Type

TRGBTripleArray = ARRAY[WORD] OF TRGBTriple;
pRGBTripleArray = ^TRGBTripleArray;

Var
i : INTEGER;
j : INTEGER;
RowA: pRGBTripleArray;
RowB: pRGBTripleArray;

begin

Assert( (BitmapA.width = BitmapB.width) AND
(BitmapA.height = BitmapB.height), 'Different sizes');


BitmapA.PixelFormat := pf24bit;
BitmapB.PixelFormat := pf24bit;

Total := BitmapA.width * BitmapA.height;

SIM := 0;

Diff := 0;

For j := 0 to BitmapA.Height-1 do
begin
RowA := BitmapA.Scanline[j];
RowB := BitmapB.Scanline[j];
// pour i do 0 jusqu' la largeur de BitmapA alors
For i := 0 to BitmapA.Width-1 DO
begin



If RowA[i] = RowB[i] Then

inc(Sim)

else inc(Diff)


End

End
end;

Gar|k
05.09.2009, 13:12
совет - копай в сторону OpenCV

imbd852
05.09.2009, 15:25
you guys are really tempt me!


















--------------------------------------------------------------------------------------------
lace front wigs (http://www.royalmewigs.com) wedding dress (http://www.royalmedresses.com) synthetic wigs (http://www.royalmewigs.com/synthetic-wigs-c-7.html)

Hwma
06.09.2009, 00:20
Придумал такой алгоритм, берется первая строчка пикселов изображения, которое ищем, построчно в исходном изображении ищем ету строчку, как только нашли, вырезаем из исходного изображения прямоугольник с размерами искомого изображения и левым верхним углом начинающимся в начале найденной пиксельной строки, ну и затем сравниваем два етих прямоугольника.