Допустим, есть изображение в тонах серого. Каждый пиксель имеет яркость от 0 до N. Изображение можно уменьшить. Каждая точка нового изображения получает яркость с учетом попадающих на её «территорию» пикселей исходного. Какие есть обратимые преобразования изображения, такие, что если преобразованное изображение уменьшить, и затем преобразовать обратно, результат будет идентичен, или примерно близок к просто уменьшенному исходному изображению?
Будем считать, что уменьшение происходит с бикубическим пересэмплированием. В реальности соц. сетей ещё добавляются артефакты jpeg-компрессии. Геометрические (spatial) преобразования, скорее всего, не годятся. Допустим, поменять местами половины картинки, уменьшить, снова поменять. По середине возникнет заметная полоска. Возможно, стоит смотреть в сторону преобразования Фурье или вейвлетов? задан 6 Янв '13 13:12 Sergiks |
Да, первое, что приходит в голову, это быстрое преобразование Фурье. Но ведь все это давно реализовано. Например, в упомянутом Вами jpeg-формате используется дискретное косинус-преобразование. По-моему, все возможные варианты разложения пиксельных матриц по различным базисам уже реализованы в тех или иных графических форматах - недаром этих форматов так много. По-моему, 100-процентный способ преобразования изображения к полностью масштабируемому виду, только один - векторизация изображения. Дополнение. Для решения Вашей задачи (шифрования/расшифровывания изображений), по-моему, самый простой и эффективный способ - просто шифровать цвета. Тогда Вы даже не будете привязаны к конкретному изображению. Пусть, $%x_i - $% цвет $%i$%-го пикселя. Если Вы примените ко всем пикселям некоторое преобразование $%y_i = f(x_i)$% - Вы получите зашифрованную картинку. Обратное преобразование вернет ее к первоначальному виду. отвечен 6 Янв '13 18:20 Андрей Юрьевич Спасибо за ответ. FFT-версия не вполне хороша, т.к. во-первых там же два изображения: power и phase, если я правильно понял. А во-вторых, будучи уменьшенным, каждое из этих изображений полностью потеряет всю информацию, став серым. Ведь важен каждый пиксел?
(6 Янв '13 18:33)
Sergiks
Насчет "во-первых" согласен. Действительно при разложении Фурье появляются амплитуда и фаза, но лучше использовать коэффициенты перед синусами и косинусами. Не очень понятно, какие это создает трудности. "Во-вторых" - не понял. У Вас же изначально серое изображение? Или нужно преобразовывать цвета?
(6 Янв '13 19:06)
Андрей Юрьевич
Серое. Я ищу преобразование, которое выдержит бикубический пересчёт пикселей при уменьшении размера, и восстановит затем уменьшенное изображение, похожее на исходное. Например, есть Flower.jpg 500x400px. FFT даёт два файла по 512x512. Уменьшаем их до 256x256. Восстанавливаем обратным FFT картинку. Получится, не имея исходного файла? Будет ли она похожа на просто уменьшенный до 250x200 Flower.jpg?
(6 Янв '13 19:43)
Sergiks
А почему - нет? И зачем нужна бикубическая интерполяция? Для сглаживания? Там же сразу получатся значения пикселей после обратного FFT.
(6 Янв '13 20:13)
Андрей Юрьевич
Практическая цель — шифрование изображений для соц. сетей. Они все, как правило, пересчитывают картинку и меняют её размер. Поэтому важна устойчивость к таким изменениям. Как правило, при ресайзе используется именно бикубическая интерполяция. Ищу преобразование, пригодное для искажения картинки до неузнаваемости. Шифрование - отдельная задача.
(6 Янв '13 20:26)
Sergiks
Тогда точно FFT. Если уменьшенное изображение похоже на исходное, то у них будут очень близкие Фурье образы. А зашифровать/расшифровать Фурье-образы нетрудно.
(7 Янв '13 2:33)
Андрей Юрьевич
показано 5 из 6
показать еще 1
|