![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.08.2013
Сообщений: 40
|
![]()
Добрый день! Выручите пожалуйста!
Задача: Есть изображение 1 и изображение 2. Изображение 1 больше чем изображение 2. Как проверить есть ли на изображении 1 фрагменты, которые схожи с изображением 2 больше чем на 50%. Помогите пожалуйста, заранее огромнейшее спасибо ![]() |
![]() |
![]() |
![]() |
#2 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Имеется ввиду, что 50% пикселей IMG2 должный находится на IMG1 в той же последовательности?
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.08.2013
Сообщений: 40
|
![]()
Хм... Просто происходит сравнивание фрагмента и изображения и определяется процент совпадений,
для этого использую код сравнения двух изображений: for i:=1 to canvas1.width do for j:=1 to canvas1.height do if canvas1.pixels[i,j] = canvas2.pixels[i,j] then inc(n); showmessage ('количество сходных пикселей = '+inttostr(n)); Допустим на изображении 1 изображен алфавит, а на изображении 2 - лишь буква А, причем может быть немного деформирована(тоесть не того же шрифта, что на рисунке 1). Но как найти этот фрагмент? Последний раз редактировалось egorka2134; 13.08.2013 в 16:31. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 12.08.2013
Сообщений: 40
|
![]()
Есть такая идея:
Допустим изображение 1 10*10 пикселей, а изображение 2 4*4 пикселя. Мы берем часть изображения 1 (начиная с верхнего левого угла) размером 4*4 пикселя, и сравниваем с изображением 2, определяем процент схожести, далее отступаем вправо на 1 пиксель и повторяем процедуру. и так весь рисунок 1. Но как реализовать? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Если просто в лоб, то сколько возможных комбинаций размещения изображения2 на изображении1? Правильно = (ширина1-ширина2+1)*(высота1-высота2+1). От этого и плясать при организации циклов по канве - цикл в цикле по возможным способам размещения и внутри циклы по канве
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 11.08.2012
Сообщений: 1,226
|
![]()
Если бы надо было 100% совпадение, то можно было бы воспользоваться простым поиском (типа pos).
А так, даже не знаю. Нейросети наверное надо использовать. Либо тупой перебор, но это очень ресурсоёмкая задача. |
![]() |
![]() |
![]() |
#7 |
БохЪ
Форумчанин
Регистрация: 30.09.2009
Сообщений: 724
|
![]()
Самый топорный способ:
Код:
В планах порабощение вселенной...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Как вариант:
Исходное изображение(что ищем), получаете его квадрат, внутри этого квадрата так же содержимое делите на квадраты по 3-5 пикселей. У цели(Где ищем), накладываем квадрат исходного изображения, разбиваем на такие же группы и начинаем сравнивать, считаем % совпадения для каждого мини-квадрата. Далее анализируете в какой части квадрата временного изображения больше всего совпадений и расстояние меду ними минимально. Если такие есть, то сдвигаете большой квадрат в ту сторону, и снова анализируете. Таким образом скорость обработки в целом возрастет, равно как и результат найти или 100% совпадение. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 12.08.2013
Сообщений: 40
|
![]()
Bcem cnacubo
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Классы. Чтение и создание .bmp изображения. Пропадает 1 пиксел при создании изображения. | s-mumrik | Visual C++ | 3 | 12.04.2013 21:21 |
Изображения | Tuman777 | Мультимедиа в Delphi | 10 | 16.10.2011 21:11 |
Изображения в C# | MeTeOpA | C# (си шарп) | 11 | 25.05.2011 15:57 |
Чтение изображения из базы данных, Вместо изображения - "System.Byte[]" | ruelCrow | Общие вопросы .NET | 3 | 10.07.2008 23:29 |
Изображения в БД | alikon1 | БД в Delphi | 3 | 08.10.2007 13:13 |