Параметри фільтрів низьких частот для зменшення розміру зображення


11

Мені потрібно зменшити масштаб зображення на коефіцієнт по горизонталі та вертикалі ( , < ).s y s x s y 1sxsysxsy1

Я хочу використовувати фільтр низьких частот низького проходу перед тим, як знизити показник.n×m

Як я повинен визначити параметри фільтра низьких частот ( та гауссова ), щоб отримати його як функції та ?σ s x s yn,mσsxsy

Зокрема, мені цікаво у випадку, коли .sx=sy=1/2


питання , пов'язаний з [тут запитав один] [1] [1]: stackoverflow.com/questions/3149279 / ...
isrish

1
Дякую, але це питання не про те, як визначити параметри фільтра як функцію коефіцієнта зменшення масштабу.
Бен-Урі

Скільки ви хочете фільтрувати? Яка ваша мета?

1
Я хочу використовувати фільтр низьких частот перед тим, як відібрати вибірку, щоб уникнути збиття. Я хочу зберегти якомога більше інформації, не створюючи її.
Бен-Урі

1
Вам потрібно подивитися на перетворення Фур'є фільтра, щоб знати, наскільки добре він зменшить частоти псевдоніму, зберігаючи частоти нижче границі Найквіста у вибірці результату. Перетворення Гаусса - ще одна гауссова, тобто немає різкого відсічення. Майже завжди є кращий вибір.
Марк Викуп

Відповіді:


4

Ви повинні подумати про зміну частоти Найквіста між обома зображеннями. Якщо частота Найквіста вихідного зображення дорівнює N, зображення, що складається з образів, має вибір нижчої частоти Найквіста, xN, де x пов'язане із співвідношенням розмірів між кінцевим зображенням та початковим. Вам потрібно буде видалити ті просторові частоти, які перевищують xN у вихідному зображенні, перед тим, як зменшити його.

Спектр потужності гаусса в просторі зображення також є гауссом у просторі частот. Якщо ми на хвилину ігноруємо другий вимір, Гаусса в просторі зображення визначають як exp (-x ^ 2 / s ^ 2), де x представляє ваші пікселі. Це відображається в просторі частот як exp (-w ^ 2 * s ^ 2), де w - частота. Параметр (и) сигми показує, що широкий гаусс у просторі зображення відповідає вузькому гауссу в просторі частот.

Ви хочете вибрати сигма-параметр, який дає дуже низьке значення в частотному просторі на частоті, що відповідає частоті Найквіста зніженого вибіркового зображення.


Правильно, але як я перекладаю це на дискретне ядро ​​згортки? (це було питання)
Бен-Урі

дивіться редагування pls ...
NoNameNo

Дякую, але все ж є формула, щоб знайти сигму як функцію максимальної частоти, яка повинна бути у вихідному результаті?
Бен-Урі

я не знаю жодної формули.
NoNameNo

1

Вже вказувалося, що і слід вибирати на основі .m σnmσ

Я витратив деякий час на роздуми над тим, як найкраще вибрати . Ось мої міркування. tl; dr: Можливо, я допустив помилку, але виглядає як хороший вибір для вибірки даних за фактом 2.σ 23,37σσ23.37


0

Якщо ви робили великий зменшений розмір (скажімо, 2x, 3x, 4x), ви можете робити усереднення пікселів, щоб досягти хорошого антизбудження. Ось чому насправді антисеалінг використовує багато додаткових процесорів / графічних процесорів, щоб зробити відеоігри більш чіткими.

Оскільки ви переходите від зображення від 1000x1000 до зображення 707x707 (лише приклад для коефіцієнта масштабу), ви правильні, що згладжування може бути проблемою.

На щастя, це проблема, з якою вже багато людей зіткнулися і зробили досить багато роботи, щоб вирішити. У багатьох випадках двостулкова інтерполяція - це шлях. Ось кілька прикладів того, як виглядають різні методи інтерполяції тут:

http://www.compuphase.com/graphic/scale.htm

У розмірі OpenCV вбудовано кілька таких методів:

http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html#cv-resize

Якщо ви вже пограли з декількома з цих методів інтерполяції, і вони не спрацьовують добре, будь ласка, опублікуйте якесь зразкове вихідне зображення та зразкове зображення результату із зазначенням недоліку. Це нам знадобиться для того, щоб діагностувати проблему та спробувати знайти її хороше рішення.


зауважте, що, хоча це швидко, усереднення пікселів не є ідеальним рішенням для якості. усереднення пікселів ефективно застосовує прямий фільтр. у просторі частот це рівносильно множенню на функцію sinc, яка коливається нульовими перетинами на гармоніках Найквіста. у цього є дві проблеми: 1. вона послаблює високу частоту, але не так вже й 2. вона перевертає фазу на кожній іншій бічній частці. І (1), і (2) можуть сприяти згладжуванню.
thang

0

Я насправді не маю гарної відповіді для вас, але ось два варіанти, які ви можете спробувати:

  • У програмі Computer Vision цей масштабний коефіцієнт зазвичай обробляється за допомогою застосування фільтра Гаусса шириною (у пікселях) від 5 до 9. Ви можете знайти відповідну Гаусса, оскільки ширина пікселя класично дорівнює .3 σσ3σ
  • якщо ви готові робити точні обчислення сигналу вибірки, то чому б не використовувати перетворення Фур'є? Візьміть FFT свого зображення, збережіть лише частину, яка відповідає вашому цільовому розміру, і переверніть перетворення. Це застосує фільтр проти згладжування у вашому спектрі. Якщо для вас занадто багато артефактів (брижі, дзвінки), застосуйте на своєму спектрі гауссового фільтра, ширина якого відповідає вашому цільовому розміру.

0

Для випадку класичне гауссова ядро ​​в 2D має вигляд: [1,2,1]Т[1,2,1]s=1/2

[1,2,1]T[1,2,1]

Ви неправі. Ви забули коефіцієнт масштабу 0,25? ... і якщо так, це звичайний вибір для s = 1/2, а не 1 / sqrt (0,5).
Бен-Урі

Будь-який коментар щодо прийому @ Бен-Урі? Система позначає цю посаду неякісною через довжину. Будь ласка, перегляньте або видаліть його.
Пітер К.

1
@PeterK. - Я думаю , що Бен-Урі плутає зs 2ss2
nbubis

Я думав, що ви використовуєте для коефіцієнта масштабу (як я використовував у своєму запитанні). Ви використовували для гауссової ? Я запитав, що таке як функція коефіцієнта зменшення ( ), і я не бачу, як ваше рішення це вирішує. s σ σ s x , s yssσσsx,sy
Бен-Урі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.