Обработка изображений на основе матричных фильтров. Обработка изображений (на основе матричных фильтров). Обработка изображений на основе матричных фильтров матрица сверки Фильтр размытия
Скачать 1.02 Mb.
|
ОБРАБОТКА ИЗОБРАЖЕНИЙ НА ОСНОВЕ МАТРИЧНЫХ ФИЛЬТРОВ 1. Матрица сверки 2. Фильтр размытия 3. Фильтр размытия по Гауссу 4. Фильтр улучшения четкости 5. Медианный фильтр 6. Фильтры эрозия и наращивание Матрица свёртки Матрица свёртки – это матрица коэффициентов, которая «умножается» на значение пикселей изображения для получения требуемого результата. Ниже представлено применение матрицы свёртки: div = 6 div – это коэффициент нормирования, для того чтобы средняя интенсивность оставалась не изменой. В примере матрица имеет размер 3x3, хотя размер может быть и больше. [1] Фильтр размытия Наиболее часто используемым фильтром, основанным на матрице свёртки, является фильтр размытия. Обычно матрица заполняется по нормальному. Ниже приведена матрица размытия 5x5 заполненная по закону Гауссовского распределения.
От размера матрицы зависит сила размытия. Рис 3. Применение фильтра размытия. Стоит упомянуть о граничных условиях (эта проблема актуальна для всех матричных фильтров). У верхнего левого пикселя не существует «соседа» с права от него, следовательно, нам не на что умножать коэффициент матрицы. [6] Рис. 4. Отсутствие «соседа» у верхнего левого пикселя. Существует 2 решения этой проблемы: 1. Применение фильтра, только к «окну» изображения, которое имеет координаты левого верхнего угла [kernelSize / 2, kernelSize / 2], а для правого нижнего [width — kernelSize / 2, height — kernelSize / 2]. kernelSize – размер матрицы; width, height – размер изображения. [6] Рис. 5. Фильтрация только по «окну» изображения. Это не лучший способ, так как фильтр не применяется ко всему изображению. Качество при этом довольно сильно страдает, если размер фильтра велик. 2. Второй метод (дополнение) требует создания промежуточного изображения. Идея в том, чтобы создавать временное изображение с размерами (width + 2 * kernelSize / 2, height + 2 * kernelSize / 2). В центр изображения копируется входная картинка, а края заполняются крайними пикселями изображения. Размытие применяется к промежуточному буферу, а потом из него извлекается результат. Рис. 6. Создание промежуточного изображения. Данный метод не имеет недостатков в качестве, но необходимо производить лишние вычисления. [6] Фильтр размытия по Гауссу Фильтр размытия по Гауссу имеет сложность O(hi * wi * n *n), где hi, wi – размеры изображения, n – размер матрицы (ядра фильтра). Данный алгоритм можно оптимизировать с приемлемым качеством. Квадратное ядро (матрицу) можно заменить двумя одномерными: горизонтальным и вертикальным. Для размера ядра 5 они будут иметь вид:
Фильтр применяется в 2 прохода: сначала горизонтальный, а потом к результату вертикальный (или на оборот). Сложность данного алгоритма будет O(hi * wi * n) + O(hi * wi * n) = 2 * O(hi * wi * n), что для размера ядра больше двух, быстрее, чем традиционный метод с квадратной матрицей. [9] Фильтр улучшения чёткости Для улучшения четкости необходимо использовать следующую матрицу: Эта матрица увеличивает разницу значений на границах. Рис. 7. Применение фильтра улучшения четкости изображения. В программе GIMP есть фильтр «Матрица свёртки», который упрощает поиск необходимого Вам матричного преобразования. [9] Рис. 8. Пример из программы GIMP. Медианный фильтр Медианный фильтр обычно используется для уменьшения шума или «сглаживания» изображения. Рис. 9. Применение медианного фильтра. Фильтр работает с матрицами различного размера, но в отличие от матрицы свёртки, размер матрицы влияет только на количество рассматриваемых пикселей. Алгоритм медианного фильтра следующий: Для текущего пикселя, пиксели, которые «попадают» в матрицу, сортируются, и выбирается средние значение из отсортированного массива. Это значение и является выходным для текущего пикселя. Ниже представлена работа медианного фильтра для размера ядра равного трём. [4] Фильтры эрозия и наращивание Фильтры наращивание и эрозия служат для получения морфологического расширения или сужения соответственно. Проще говоря, для изображений это значит выбор пикселя с максимальной или минимальной интенсивностью из окрестности. Рис. 10. Применение фильтров эрозия и наращивание при обработке. В результате наращивания происходит увеличение ярких объектов, а эрозии – увеличение тёмных объектов. Фильтр использует входное изображение и бинарную матрицу. Бинарная матрица определяет форму окрестности. Обычно окрестность имеет круглую форму. Фильтр наращивание может быть использован для увеличения бликов, ярких отражений. [3] Литература Гельмут К. Энциклопедия по печатным средствам информации. - М.: МГУП, 2003 г. Гонсалес Р., Вудс Р. Цифровая обработка изображений. - М: Техносфера, 2005 г. Гуров А.А., Порфирьева Н.Н. Обработка изображений на ЭВМ методами линейной фильтрации // Труды ГОИ им. С.И. Вавилова. – Л, 1982 г. – Вып. 185. – С. 33–50. Ким В., Ярославский Л.П. Ранговые алгоритмы обработки изображений // Адаптивные методы обработки изображений. - М.: Наука, 1988. – С. 35 – 73. Павлидис Т. Алгоритмы машинной графики и обработки изображений. - М.: Радио и связь, 1986 г. – 400 с. Практический курс Adobe Photoshop 4.0 [Электронный ресурс]. КУбК-А, 1997 г. Прэтт У. Цифровая обработка изображений – М.: Мир, 1982 г. – 790 с. Феличи Джеймс. Типографика: шрифт, верстка, дизайн. - П: BHV, 2004 г. Шлезингер М.И. Математические средства обработки изображений. - К.: Наукова думка, 1989. – 200 с. Шлихт Г.Ю. Цифровая обработка цветных изображений. - М., Издательство ЭКОМ, 1997. – 336 с. |