Название: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 02, 2007, 23:43 Есть скажем картинки 200х600 и есть картинка 200х1.
Как можно найти по какой координате у размещена картинка 2 в картинке 1. Спасиб! Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 02, 2007, 23:57 есть вариант сравнить по пикселям, но может как-то по-другому можно...
Название: Re: Найти позицию картинки в картинке Отправлено: QCasper от Ноябрь 03, 2007, 00:04 Что значит "Есть"? Дано два QImage или что?
Название: Re: Найти позицию картинки в картинке Отправлено: Dodge от Ноябрь 03, 2007, 00:34 Чето я не понял, нужна корреляционная функция для нахождения заданного изобрижения внутри целевого?
Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 03, 2007, 00:35 Чето я не понял, нужна корреляционная функция для нахождения заданного изобрижения внутри целевого? даto QCasper, да, дано два QImage Название: Re: Найти позицию картинки в картинке Отправлено: Kainit от Ноябрь 03, 2007, 15:05 Если задача простая (а я подозреваю что она именно такая), пройдитесь в цикле и попиксельно сравните.
Если задача сложна (например, надо повернуть вторую картинку на 10 градусов чтобы она совпала), тогда надо более сложную логику вместо попиксельного сравнения. Поставьте задачу корректно, если хотите получить толковый ответ. Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 03, 2007, 19:52 Задача простая но усложненная...
Картинки крутить не нужно... Просто есть картинка 400х200 и 400х1 и нужно найти позицию второй в первой, по высоте... Тут другая проблема возникла, что пару пикселей второй картинке чу-чуть могут отличаться из-за другого качества jpg. Поэтому просто по пикселям сравнить нельзя, есть какие-то алгоритмы? Название: Re: Найти позицию картинки в картинке Отправлено: Dodge от Ноябрь 04, 2007, 00:28 Задача простая но усложненная... Хм... ну можно считать степень "похожести" строк, по каждой из цветовых компонент.Картинки крутить не нужно... Просто есть картинка 400х200 и 400х1 и нужно найти позицию второй в первой, по высоте... Тут другая проблема возникла, что пару пикселей второй картинке чу-чуть могут отличаться из-за другого качества jpg. Поэтому просто по пикселям сравнить нельзя, есть какие-то алгоритмы? Берем пиксель p1 на целевом изображении, и пиксель p2 на заданном. Т.о. Код: float factor[n] = 0.0; // где n - кол-во строк у какой строки factor меньше та и похожа. Это не лучший вариант, но самый простой Название: Re: Найти позицию картинки в картинке Отправлено: Dodge от Ноябрь 04, 2007, 01:03 ДА, совсем головане работает, проверку деления на 0 нада ввести... а лучше сделать следующее: заменять значение компонент - 0, на 1, точность сильно не уменьшится, зато головной боли меньше. :)
Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 04, 2007, 01:38 Спасибо! Сделал почти также, только еще проще, пока вроде работает...
Хотя твой вариант получше будет... Сделал так: считываю попикселям и считаю сколько одинаковых пикселей, в какой строке больше то и записываю Название: Re: Найти позицию картинки в картинке Отправлено: Dodge от Ноябрь 04, 2007, 01:52 Спасибо! Сделал почти также, только еще проще, пока вроде работает... Это решение конечно, но корреляцией это уже сложно назвать ;DХотя твой вариант получше будет... Сделал так: считываю попикселям и считаю сколько одинаковых пикселей, в какой строке больше то и записываю А вообще, если картинко будет пережата, то одинаковых пикселов вообще не найдешь. Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 04, 2007, 02:51 Да, мой способ работает через раз (((
А твой я что-то реализовал но оно вообще не правильно показывает... Можешь проверить и скинуть примерчик? Название: Re: Найти позицию картинки в картинке Отправлено: Tonal от Ноябрь 04, 2007, 09:55 Если трактовать цвет пиксела как точку в трёхмерном цветовом пространстве RGB, то можно определить цветовое расстояние между 2мя цветами:
Код: colod_diff = abs(sqrt(r1*r1+g1*g1+b1*b1)-sqrt(r2*r2+g2*g2+b2*b2)); Строка с минимальным расстоянием и будет искомой. Название: Re: Найти позицию картинки в картинке Отправлено: Dodge от Ноябрь 04, 2007, 13:14 Да, мой способ работает через раз ((( Ок, во вторник скину.А твой я что-то реализовал но оно вообще не правильно показывает... Можешь проверить и скинуть примерчик? Название: Re: Найти позицию картинки в картинке Отправлено: Racheengel от Ноябрь 06, 2007, 01:52 Мда, вот сколько сижу на форуме, а проблем с распознаванием образов еще никто не поднимал...
Название: Re: Найти позицию картинки в картинке Отправлено: Alex03 от Ноябрь 06, 2007, 08:27 pakulo Лучшеб саму задачу описал.
ИМХО тут или упрощённая задачка - типа задания студенту. Или кривой способ решения более сложной задачи (типа распознавания штрихкода). Название: Re: Найти позицию картинки в картинке Отправлено: pakulo от Ноябрь 07, 2007, 00:34 А чего тут задачу описывать, я ж описал уже? :)
Задачу не студенту, а для личной программки, мне нужно склеить две картинки. Одна картинка верхняя часть объекта, вторая нижняя, картинки порезанные (т.е. была одна фотка и она разрезанная, но не на пополам, каждому своя часть)... Вот и нужно их склеить... Я сделал так как я описал, смотрю где больше пикселей одинаковых туда и леплю картинку, пока работает... Но тут проблема, когда фотка какой-то объект на белом фоне скажем... Название: Re: Найти позицию картинки в картинке Отправлено: Tonal от Ноябрь 07, 2007, 11:12 Тогда просто создаёшь картинку суммарной высотой, сверху выводишь верхнюю, снизу нижнюю.
В чём проблема? Или ты чего-то недообъяснил? :-) |