сравнение изображений
[python] сравнение изображений
Подскажите алгоритмы и способы сабжа?
Хочу написать незатейливую программку, коорая просканит мне указанную диру (рекурсивно) и попробует найти дубликаты изображений.
Или если подобная уже есть, ткните пальцем.
Не могу пока догнать алгоритм сравнения, например, одинаковых изображений, оличающихся, например, исключительно разрешением, или палитрой.
Сравнивать надо jpeg, bmp, png, gif
Re: [python] сравнение изображений
под винду есть Image Dupeless
Re: [python] сравнение изображений
мне не надо под винду. нету ее у меня уже оочень давно
Re: [python] сравнение изображений
>исключительно разрешением, или палитрой.
можно попробовать всё масштабировать в 100 на 100 пикселей, делать чёрнобелым и сравнивать по пиксельно, искать отличие в 3 пикселя, чёрнобелым можно делать если сумма r g b превышает какой-то порог, то белое, не превышает, то чёрное
p.s. жуткий велик с квадратными колёсами, может даже заработает, но наверняка всё давно украдено
Re: [python] сравнение изображений
Как раз сейчас занимаюсь научной работой с распознаванием образов и анализом изображений. Могу предложить вэйвлеты, но, подозреваю, что для таких мирных домашних целей - это микроскоп для забивания гвоздей.
Re: [python] сравнение изображений
решение неплохое.
>>p.s. жуткий велик с квадратными колёсами, может даже заработает
Re: [python] сравнение изображений
> а есть иные варианты?
Digikam + kipi-plugins это умеет.
Re: [python] сравнение изображений
imgSeek (только написан он на питоне, поэтому тормозит жутко). А вообще, сравнение изображений - довольно нетривиальная задача (особенно если они имеют разный масштаб и немного отличаются в цветовой гамме).
man двумерные вейвлет-преобразования
Re: [python] сравнение изображений
Что-то типа двухмерной корелляции наверно надо. На Си, конечно.
Re: [python] сравнение изображений
Обычно все изображения масштабируют до одного и того же размера, выравнивают уровни, потом делают какое-нибудь Фурье или вейвлетное преобразование, высокочастотные компоненты выкидывают, а из того, что останется, берут набор каких-нибудь усреднённых значений, как усреднять - не так уж важно, тут все извращаются, как могут, например, можно взять какие-нибудь средние значения для прямоугольных участков, или перейти к полярным координатам, тогда будет какая-то устойчивость к преобразованиям вращения исходной картинки. Потом уже сравнивают хэши разных изображений.
Re: [python] сравнение изображений
Можно то же самое, но нейросетями.
По замыслу, это должно выглядеть следующим образом для группы из 1024 картинок:
1. Масштабирование в 100х100
2. перевод в ч/б, автоуровни.
3. многослойная сеть, с первым convolution-слоем. При желании можно
сделать и несколько таких слоев. На выходе 10 нейронов, двоично
кодирующих номер картинки. Или 1024 нейрона, по каждому на одну
картинку.
4. Учить ее хитрыми градиентными спусками, типа rprop
После этого сеть будет картинки как орехи щелкать.
Re: [python] сравнение изображений
Хм. Мысль про нейросеть весьма и весьма здравая. Единственное "но" после обучения она будет хорошо щелкать картинки, похожие на те, которым обучена. Для перехода с пейзажей на портреты, например, мне кажется, потребуется некоторое переобучение. Или я не прав?
Re: [python] сравнение изображений
посмтри ка сделано в Netpbm (http://netpbm.sourceforge.net/)
pnmpsnr - compute the difference between two images
Re: [python] сравнение изображений
разве он сравнивает не битмапные аски-форматы?
Заключение: [python] сравнение изображений Подскажите алгоритмы и способы сабжа? Хочу написать незатейливую программку, коорая просканит мне указанную диру (рекурсивно) и попробует найти дубликаты
Комментариев нет:
Отправить комментарий