Масштабирование изображения на основе деталей - PullRequest
4 голосов
/ 20 октября 2010

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

Например, если вы снимаете не сфокусированное или дрожащее изображение с помощью камеры, будет меньше деталей или высокочастотного контента, чем если бы камера получала изображение в фокусе или из фиксированного положения относительно сцены. будучи изображенным. Размер изображения с более низкой энтропией может быть значительно уменьшен, и при этом можно сохранить большую часть деталей, если уменьшить масштаб этого изображения до исходного размера. Однако в случае более детального изображения невозможно было бы уменьшить размер изображения без потери существенных деталей.

Я, конечно, понимаю, что многие форматы изображений с потерями, включая JPEG, делают что-то похожее в том смысле, что объем данных, необходимых для хранения изображения с заданным разрешением, пропорционален энтропии данных изображения, но мне любопытно, в основном для моего собственного интереса, если бы мог быть вычислительно эффективный подход для масштабирования разрешения к содержанию изображения.

1 Ответ

2 голосов
/ 20 октября 2010

Это возможно, и можно утверждать, что большинство схем сжатия изображений с потерями от DCT в стиле JPEG до фрактальное сжатие по сути делают это по-своему.

Обратите внимание, что такие методы почти всегда работают с небольшими фрагментами изображения, а не с большим изображением, чтобы максимизировать сжатие в областях с меньшей детализацией, вместо того, чтобы ограничивать применение одних и тех же настроек везде. Последнее, скорее всего, приведет к плохому сжатию и / или большим потерям на большинстве «реальных» изображений, которые обычно содержат смесь уровней детализации, хотя есть исключения, подобные вашему не в фокусе.

Вам нужно будет определить, что составляет "большую часть деталей исходного изображения", поскольку идеальное восстановление будет возможно только для довольно искусственных изображений. И вам также необходимо указать точную форму масштабирования, которая будет использоваться в каждом случае, так как это может оказать довольно существенное влияние на качество восстановления. Например, простое повторение пикселей будет лучше сохранять твердые края, но разрушать плавные градиенты, в то время как линейная интерполяция должна лучше воспроизводить градиенты, но может нанести ущерб краям.

Упрощенный, нестандартный подход может состоять в том, чтобы рассчитать двухмерный спектр мощности и выбрать масштабирование (возможно, отличающееся по вертикали и горизонтали), которое сохраняет частоты, которые содержат «большую часть» контента. По сути, это было бы эквивалентно выбору фильтра нижних частот, который удерживает «большую часть» деталей. Вопрос о том, считается ли такой подход "вычислительно эффективным", может быть спорным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...