Перейти к содержанию
    

Подобие матриц (картинок)

***************************

Вот такой метод должен работать:

 

- находим геометрические центры областей со знаком "плюс" и со знаком "минус"

 

Будьте добры, поясните нахождение геометрических центров, или укажите что почитать.

 

Вот это оно? http://en.wikipedia.org/wiki/Geometric_median

Изменено пользователем Punk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg

Сначала уточню по вычитанию битовых изображений pixLeft[] и pixRight[]:

 

Логически раскрашиваем разностное изображение pixRes[] следующим образом:

(псевдокод аля Паскаль)

 

Это необходимо делать при частичном перекрытии объектом самого себя, что не исключено.

 

if (pixLeft[i,j] = 0) and pixRight[i,j] = 0 then pixRes[i,j] := clWhite;

if (pixLeft[i,j] = 1) and pixRight[i,j] = 1 then pixRes[i,j] := clBlack;

if (pixLeft[i,j] > pixRight[i,j]) then pixRes[i,j] := clRed;

if (pixLeft[i,j] < pixRight[i,j]) then pixRes[i,j] := clBlue;

 

cl* - условные "цвета" пикселей разностного изображения.

 

Определение центра тяжести или геометрическиго центра, что для битовых одно и то же.

 

Для "компактных" объектов может подойти примитивный способ:

X := (Xmin + Xmax)/2;

Y := (Ymin + Ymax)/2;

 

Но лучше, через дискретное интегрирование:

Координаты ц.т. изображений L и R находим как сумму координат поделенную на число точек:

 

cntL: integer; // число точек "левого" объекта - площадь в пикселях

cntR: integer; // число точек "правого" объекта - площадь в пикселях

crdLX, crdRX: integer; // координаты ц.т. "левого" объекта, pix

crdLY, crdRY: integer; // координаты ц.т. "правого" объекта, pix

 

 

for i := 0 to W-1

for j := 0 to H-1 do begin

 

if (pixRes[i,j] = clRed) or (pixRes[i,j] = clBlack) then begin

crdLX := crdLX + i + 1; crdLY := crdLY + j + 1;

Inc(cntL);

end;

 

if (pixRes[i,j] = clBlue) or (pixRes[i,j] = clBlack) then begin

crdRX := crdRX + i + 1; crdRY := crdRY + j + 1;

Inc(cntR);

end;

 

end;

 

if cnt* > 0 then

crd* := crd* / cnt*; // для приведения ц.т. в масштаб изображения

 

***

Пример детектирования расстояния

Shift - установленный сдвиг

Calc - вычисленный по алгоритму выше.

 

80555991d3f9t.jpg

 

P.S.

ТС задал явные ограничения на мощность MCU и свои возможности, потому предлагается легкий алгоритм, как для MCU, так и для него.

Сложность пропорциональна N. :)

 

***

Пример графика заданного и найденного сдвигов

Наблюдаем хорошую линейность и точность до 60 pix ( после 60 pix - выход за границы и вычисления некорректны )

 

1d9dd46d9747t.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С уважением.

Добрый день! Почитай о функции корреляции. В книге "Без паники! Цифровая обработка сигналов", этот вопрос очень подробно рассмотрен.

 

С уважением.

Добрый день! Почитайте о функции корреляции. В книге "Без паники! Цифровая обработка сигналов", этот вопрос очень подробно рассмотрен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, далек от математики, не обессудьте.

Озадачился на выходных такой проблемой: Как установить подобие двух маленьких картинок...

 

Есть довольно много методов распознавания образов, которые базируются на методах многомерной статистики.

К сожалению, это гольная математика, поэтому, даже не знаю, как объяснять дальше....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть довольно много методов распознавания образов, которые базируются на методах многомерной статистики.

К сожалению, это гольная математика, поэтому, даже не знаю, как объяснять дальше....

здесь я распозновать ничего не буду ибо мк не вытянет. Сегодня запустил распознавание образов на OMAP3530, он и то на своих 700х МГц подтормаживает, чего уж говорить о 8ми битниках.

 

Буду пробовать метод предложенный TSerg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Буду пробовать метод предложенный TSerg

 

Что непонятно - спрашивайте в этой ветке.

Алгоритм рабочий, но с ограничениями (примеры его работы я показал визуально).

Есть ньюансы по выбору метода бинаризации и помехоустойчивости.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...