Изменение размера в MATLAB с различными фильтрами - PullRequest
2 голосов
/ 13 октября 2011

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

Я вижу функцию imresize, у которой есть опция для метода.Проблема в том, что есть только 3 варианта: ближайший, билинейный, бикубический.Билинейный и бикубический являются методами усреднения / среднего значения, но есть ли способ установить размер / вес окрестности?

Основная проблема заключается в том, что мне нужно сделать это с помощью метода «медианной» интерполяции вместо среднего.Как я могу сказать, чтобы использовать этот метод?

Ответы [ 3 ]

4 голосов
/ 14 октября 2011

Способ, которым IMRESIZE реализует интерполяцию, - это вычисление для каждого пикселя в выходном изображении (обратное отображение) индексов пикселей во входном изображении, которые будут участвовать в интерполяции, вместе с вносящими весами.

Соседство и веса определяются типом используемого ядра интерполяции, которое, как указывает @ Альберт , может быть передано функции IMRESIZE ( 'Method' свойство может принимать {f,w} массив ячеек с функцией ядра и шириной ядра)

Эти два компонента будут использоваться для вычисления линейной комбинации входных пикселей, задействованных для заполнения каждого значения выходных пикселей. Этот процесс выполняется вдоль каждого измерения отдельно по одному (по вертикали, а затем по горизонтали).

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

1 голос
/ 21 января 2013

Амро прав, что медианный фильтр не может быть вычислен как взвешенный ответ.Но у MATLAB есть специальная функция для медианного фильтра: medfilt2 .

0 голосов
/ 13 октября 2011

imresize имеет третий способ передачи метода интерполяции: «Ядро интерполяции, определяющее массив двухэлементных ячеек». Вы можете прочитать больше об этом в документации Matlab .

...