Курсовая работа по обработке изображений
- Опубликовано: 26.12.2007
Настоящие методические указания предназначены, прежде всего, для студентов моей специальности 230101 «Вычислительные машины, комплексы, системы и сети», которые хотели бы успешно выполнить курсовую работу по дисциплине с громким названием «Обработка изображений, распознавание образов и мультимедиа». Также они могут быть полезны для студентов и других специальностей и вообще всех интересующихся обработкой изображений и распознаванием текста.
- Задание на курсовую работу
- Документный интерфейс
- Открытие изображения
- Работа с изображением и его отображение
- Работа с точками и цветами
- Яркость точки и гистограммы изображения
- Изменения яркости и контрастности
- Изменение цветности (бинаризация, оттенки серого, негатив)
- Наложение шума и фильтры шумоподавления (сглаживания)
- Методы выделения границ
- Распознавание текста
- Непрерывное преобразование Фурье
- Дискретное преобразование Фурье
- Преобразование Уолша-Адамара
- Источники информации
Методы выделения границ
Ниже будут рассмотрены методы (фильтры) выделения границ (контуров) изображения. При этом может быть использовано ранее введённое понятие апертуры фильтра. Если в описании используется некая матрица, индексы элементов в которой расставлены отлично от естественного порядка индексов в массиве точек, то при реализации удобно пользоваться рабочим массивом, который предварительно заполняется значениями точек текущего рабочего окна обрабатываемого изображения таким образом, чтобы индексы элементов в рабочем массиве соответствовали описанию метода.
Внимание! Все методы выделения границ работают с яркостью точки, то есть со значением, полученным из значений трёх цветовых каналов по известной формуле (см. выше). Однако для этого вовсе необязательно предварительно преобразовывать всё изображение к оттенкам серого, достаточно лишь получать значение яркости в тот момент и для той точки, с которой идёт работа, а полученное в результате преобразований значение повторять по трём каналам. И ещё: нельзя забывать о необходимости коррекции результата (0..255).
Метод Кирша
Работает с двумерной апертурой 3х3 следующего вида:
| Si = Ai + Ai(+)1 + Ai(+)2 Ti = Ai(+)3 + Ai(+)4 + Ai(+)5 + Ai(+)6 + Ai(+)7 |
Сначала в цикле находятся все значения переменных Si и Ti, где i изменяется от 0 до 7, по приведённым выше формулам, в которых «(+)» означает сложение по модулю 8, для которого может быть использована следующая функция:
function AddMod8 (X, Y: Integer): Integer; var Sum: Integer; begin Sum := X + Y; if Sum > 7 then Sum := Sum – 8; Result := Sum; end;
После находятся значения модуля разности | 5*Si – 3*Ti | для каждого i от 0 до 7 и значение максимума среди этих модулей:
Возможно, для обеспечения наблюдаемости потребуется повышение порога яркости сложением эдак с числом 100. Окончательное значение F' заносится в элемент F, после чего рабочее окно сдвигается на один элемент вправо (далее – слева направо и сверху вниз).
Метод Лапласа
Осуществляет домножение каждого элемента двумерной апертуры 3х3 на соответствующий элемент так называемой матрицы Лапласа:
|
|
| = |
|
Внимание! Здесь речь идёт именно о простом умножении каждого элемента исходной матрицы на соответствующий элемент матрицы коэффициентов, и это не надо путать с перемножением матриц.
После перемножения все полученные значения элементов суммируются, при необходимости повышается порог яркости сложением эдак с числом 100, и результат помещается в центр, то есть в точку E. Затем рабочее окно сдвигается на один элемент вправо (далее – слева направо и сверху вниз).
Существуют и другие матрицы Лапласа:
| , |
| , |
| , |
| и так далее… |
Метод Робертса
Как показывает практика, является самым простым, самым быстрым и эффективным (поистине, всё гениальное – просто). Работает он с двумерной апертурой 2х2 следующего вида:
|
Здесь вторая форма записи (с квадратным корнем) работает медленнее, но точнее. Возможно, для обеспечения наблюдаемости потребуется повышение порога яркости сложением эдак с числом 100. Окончательное значение A' заносится в элемент A, после чего рабочее окно сдвигается на один элемент вправо (далее – слева направо и сверху вниз).
Метод Собела
Работает с двумерной апертурой 3х3 следующего вида:
| X = ( A3 + 2 * A4 + A5 ) – ( A1 + 2 * A8 + A7 ) Y = ( A1 + 2 * A2 + A3 ) – ( A7 + 2 * A6 + A5 ) |
Сначала находятся значения переменных X и Y по приведённым выше формулам. После находится новое значение центрального элемента:
Возможно, для обеспечения наблюдаемости потребуется повышение порога яркости сложением эдак с числом 100. Окончательное значение F' помещается вместо элемента F, после чего рабочее окно сдвигается на один элемент вправо (далее – слева направо и сверху вниз).
Метод Уоллеса
Работает с двумерной апертурой 3х3 следующего вида:
|
Сразу находится новое значение центрального элемента по приведённой выше формуле; при этом, если знаменатель (Ai с нечётными значениями i) равен нулю, то к нему и к числителю добавляется единица (проще добавлять эту единицу всегда). Возможно, для обеспечения наблюдаемости потребуется домножение результата на очень большое число (эдак на 500) и повышение порога яркости сложением эдак с числом 100. Окончательное значение F' помещается вместо элемента F, после чего рабочее окно сдвигается на один элемент вправо (далее – слева направо и сверху вниз).
Статистический метод
Является двухпроходовым и применим для любой апертуры, даже для прямоугольной. На первом этапе вычисляется среднее значение яркости по текущему рабочему окну:
Далее вычисляется значение среднеквадратичного отклонения значений элементов рабочего окна от среднеарифметического значения:
Затем значения всех элементов рабочего окна домножаются на полученное отклонение:
Возможно, для обеспечения наблюдаемости потребуется повышение порога яркости сложением эдак с числом 100.
Примечание. Статистический метод – единственный из здесь рассмотренных, у которого изменяются значения сразу всех элементов.