Сегментация изображения
Содержание и сравнительное описание различных методов сегментации изображения: обнаружение разрывов яркости, связывание контуров и нахождение границ, бинаризация, управляемый водораздел. Особенности практического применения сегментации изображения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 28.04.2019 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Сегментация изображения
Введение
сегментация бинаризация изображение водораздел
Создание искусственных систем распознавания образов остаётся сложной теоретической и технической проблемой. Необходимость в таком распознавании возникает в самых разных областях. Оно может использоваться в системах видеонаблюдения, в медицине, в технической диагностике и в других областях. Важность и актуальность рассматриваемой задачи обусловлена, в первую очередь, ростом объемов получаемой информации, необходимостью в качественной, максимально быстрой, ее обработке.
Сегментация изображения - это разделение изображения на области, однородные по некоторому критерию. Сегментация, при которой области разбиения не пересекаются, называются тесселяцией. Цель сегментации состоит в упрощении или изменении представления изображения, чтобы его было легче анализировать в дальнейшем. Результатом сегментации является множество сегментов, которые покрывают все изображение. Иначе говоря, каждый пиксель отмечен некоторой меткой некоторого класса.
На текущий момент огромная часть информации хранится в электронном виде. Поиск и извлечение необходимых знаний происходит намного проще благодаря полуавтоматическим системам навигации по различным корпусам текстов, изображений и видео. Для навигации по изображениям необходимо выделить объекты, присутствующие на нем: фон, текст, главные детали и другое.
Одной из основных задач обработки и анализа изображений является сегментация, т.е. разделение изображения на области, для которых выполняется определенный критерий однородности, например, выделение на изображении областей приблизительно одинаковой яркости. Понятие области изображения используется для определения связной группы элементов изображения, имеющих определенный общий признак (свойство). Сегментация подразделяет изображение на составляющие его области или объекты. Та степень детализации, до которой доводится такое разделение, зависит от решаемой задачи. Иначе говоря, сегментацию следует прекратить, когда интересующие объекты оказываются изолированными. Например, в задаче автоматизированного контроля сборки узлов радиоэлектронной аппаратуры интерес представляет анализ изображений изготавливаемых изделий с целью выявления определенных дефектов, таких как отсутствие компонентов или разрыв контактных дорожек на плате. Поэтому не имеет смысла проводить сегментацию мельче того уровня детализации, который необходим для обнаружения подобных дефектов.
Сегментация изображений, не являющихся тривиальными, представляет собой одну из самых сложных задач обработки изображений. Конечный успех компьютерных процедур анализа изображений во многом определяется точностью сегментации, по этой причине значительное внимание должно быть уделено повышению ее надежности. В некоторых ситуациях, например в задачах технического контроля, возможно хотя бы в некоторой степени управлять условиями съемки. Опытный проектировщик системы обработки изображений неизменно обращает внимание на подобные возможности. В других прикладных задачах, например, в автономных системах наведения на цель, разработчик не может контролировать окружающие условия, поэтому обычный подход состоит в том, чтобы сосредоточиться на выборе сенсоров такого вида, которые, скорее всего, будут усиливать сигнал от интересующих объектов и одновременно ослаблять влияние несущественных деталей изображения. Хорошим примером такого подхода может служить съемка в инфракрасном диапазоне, используемая в военных целях для обнаружения объектов с мощным тепловым излучением, например, боевой техники или движущихся войск.
Целью работы является исследование методов для обеспечения качественной сегментации изображений разных классов.
Для достижения поставленной цели необходимо решить ряд задач, а именно:
- провести литературный обзор существующих методов сегментации изображений;
- на основе литературного обзора выявить достоинства и недостатки методов, область их эффективного применения;
- рассмотреть практическое применение известных методов сегментации изображений.
1. Методы сегментации изображения
Алгоритмы сегментации изображений основываются на одном из двух базовых свойств сигнала яркости: разрывности и однородности. В первом случае подход состоит в разбиении изображения на основании резких изменений сигнала, таких как перепады яркости на изображении. Вторая категория методов использует разбиение изображения на области, однородные в смысле заранее выбранных критериев. Примерами таких методов могут служить пороговая обработка, выращивание областей, слияние и разбиение областей.
Сегментация изображения |
||||||
Методы основанные на энтропии |
Методы основанные на кластеризации |
Методы основанные на оттенках серого и гистограммах |
Методы основанные на локальных порогах |
Методы основанные на пиксельной корреляции |
Методы основанные на атрибах |
|
Pun |
Riddler |
Rosenfeld |
Yasuda |
Pal |
Tsai, Cheng |
|
Kapur |
Otsu |
Sezan |
White |
Abutaleb |
Hertz |
|
Li |
Lloyd |
Corlotto & Olivo |
Niblack |
Chang |
O'Gorman |
|
Snanbsk |
Kittler |
Ramesh |
Benrsen |
Beghdadi |
Huang |
|
Yen |
Yani |
Guo & Kai |
Palumbo |
Friel |
Pikaz |
|
Brink |
Yawahar |
Yanowitz |
Leung |
|||
Sahoo |
Kamel |
|||||
Cheng |
Ob |
|||||
Sauvola |
1.1 Обнаружение разрывов яркости
Наиболее общим способом поиска разрывов является обработка изображения с помощью скользящей маски, подобно тому, как описывалось. Для показанной на Рис. 1.1 маски размерами 3x3 элемента эта процедура основана на вычислении линейной комбинации коэффициентов маски со значениями яркости элементов изображения, покрываемых маской. Иначе говоря при использовании этой маски отклик в каждой точке изображения задается выражением
(1.1)
где - значение яркости пикселя, соответствующего коэффициенту маски. Отклик маски приписывается позиции ее центрального элемента.
Рис. 1.1. Общее представление маски размерами элемента
Обнаружение точек
В принципе, обнаружение отдельных изолированных точек на изображении не представляет сложности. Необходимо воспользоваться маской, показанной на Рис. 1.2, считается, что в том пикселе, куда попадает центр маски, обнаружена точка, если
(1.2)
где Т - неотрицательный пород a R вычисляется в соответствии с (1.1).
По существу, в формуле (1.1) измеряется взвешенная сумма разностей значений центрального элемента и его соседей. Идея состоит в том, что изолированная точка (т.е. расположенная в однородной или почти однородной области точка, значение яркости которой существенно отличается от окружающею фона) будет заметно отличаться по яркости от ближайших соседей, а значит, будет легко обнаруживаться с помощью маски приведенного вида. В данном случае цель состоит исключительно в обнаружении отдельных точек, поэтому интерес представляют только достаточно большие различия (определяемые порогом T), при которых точка может считаться изолированной. Сумма коэффициентов маски равна нулю, так что на областях постоянной яркости она будет давать нулевой отклик.
Рис. 1.2. Маска для обнаружения точек
Обнаружение линий
Следующим по уровню сложности является обнаружение линий. Рассматривается набор масок, показанный на Рис. 1.3. При скольжении первой маски по изображению, наиболее сильный отклик будет на горизонтальных линиях толщиной в один пиксель; причем, если яркость фона одинакова, то отклик будет максимальным, когда линия проходит горизонтально через центр маски. Это легко проверить на простом примере однородного поля со значениями элементов маски равными 1, содержащего горизонтальную линию из элементов с отличающимся значением яркости (например, 5). Аналогичные эксперименты подтвердят, что вторая маска на Рис. 1.3 дает наибольший отклик на линиях, проходящих под углом +45°; третья - на вертикальных линиях; четвертая - на проходящих под углом -45°. Эти направления можно выявить и по тому признаку, что предпочтительные направления каждой из масок характеризуются большими значениями весовых коэффициентов (а именно, 2), чем любые другие направления. Необходимо обратить внимание, что сумма коэффициентов каждой маски равна нулю, так что они будут давать нулевой отклик на областях постоянной яркости.
Обозначая через отклики масок, показанных на Рис. 1.3 (слева направо), где значения вычисляются согласно соотношению (1.1). Будем считать, что изображение обрабатывается независимое помощью каждой из этих масок. Если в некоторой точке изображения для всех , то эта точка, скорее всего, связана с линией, ориентированной вдоль направления маски . Например, если в какой-то точке изображения то эта точка, по-видимому, принадлежит горизонтальной линии. Альтернативная задача может быть сформулирована в виде поиска линий, идущих в заданном направлении. В таком случае можно обработать все изображение с помощью маски для этого направления, применяя пороговое преобразование (1.1) к получаемому отклику. Другими словами, если интерес представляют все линии в изображении, которые ориентированы по направлению данной маски, достаточно пройти этой маской по всему изображению, сравнивая абсолютное значение результата с заданным порогом. Оставшиеся при этом точки соответствуют наибольшим значениям отклика, которые в случае линий толщиной в один пиксель наиболее близки к направлению, определяемому маской.
Рис. 1.3. Маски для обнаружения линий
1.2 Связывание контуров и нахождение границ
В идеале методы, рассмотренные ранее, должны выделять в изображении только пиксели, лежащие на контурах. На практике это множество пикселей редко отображает контур достаточно точно по причине шумов, разрывов контуров из-за неоднородности освещения, а также прочих эффектов, нарушающих непрерывность яркостной картины. Поэтому алгоритмы обнаружения контуров обычно дополняются процедурами связывания, чтобы сформировать из множества контурных точек содержательные контуры. Для этой цели существует несколько основных подходов.
Один из простейших подходов к связыванию точек контура состоит в анализе характеристик пикселей в небольшой (например, 3x3 или 5x5) окрестности каждой точки () изображения, отмеченная как контурная точка. Все точки, являющиеся сходными в соответствии с некоторыми заранее заданными критериями, связываются и образуют контур, состоящий из пикселей, отвечающих этим критериям.
При таком анализе используются следующие два основных параметра для установления сходства пикселей контура: (1) величина отклика оператора градиента, определяющая значение пикселей контура; и (2) направление вектора градиента. Первый параметр задается значением , определяемым согласно выражению
(1.3)
или
(1.4)
Таким образом, пиксель контура, имеющий координаты () и расположенный внутри заданной окрестности точки , считается сходным по модулю градиента с пикселем (х, у), если
(1.5)
где Е - заданный неотрицательный порог.
Направление (угол) вектора градиента задается выражением (1.1) - (1.5). Пиксель контура с координатами (), расположенный внутри заданной окрестности точки (), считается сходным по направлению градиента с пикселем (), если
(1.6)
где А - заданный неотрицательный угловой порог.
Направление контура в точке () перпендикулярно направлению вектора градиента в этой точке.
Пиксель в заданной окрестности объединяется с центральным пикселем , если выполнены критерии сходства и по величине, и по направлению. Этот процесс повторяется в каждой точке изображения, с одновременным запоминанием найденных связанных пикселей при движении центра окрестности. Простой способ учета данных состоит в том, что каждому множеству связываемых пикселей контура присваивается свое значение яркости.
1.3 Метод бинаризации
Один из основных и простых способов - это построение сегментации с помощью порога. Порог - это признак (свойство), которое помогает разделить искомый сигнал на классы. Операция порогового разделения заключается в сопоставлении значения яркости каждого пикселя изображения с заданным значением порога.
Операция порогового разделения, которая в результате дает бинарное изображение, называется бинаризацией. Целью операции бинаризации является радикальное уменьшение количества информации, содержащейся на изображении. В процессе бинаризации исходное полутоновое изображение, имеющее некое количество уровней яркости, преобразуется в черно-белое изображение, пиксели которого имеют только два значения - 0 и 1
Пороговая обработка изображения может проводиться разными способами.
Бинаризация с нижним порогом является наиболее простой операцией, в которой используется только одно значение порога:
(1.7)
Все значения вместо критерия становятся 1, в данном случае 255 (белый) и все значения (амплитуды) пикселей, которые больше порога t - 0 (черный).
Иногда можно использовать вариант первого метода, который дает негатив изображения, полученного в процессе бинаризации. Операция бинаризации с верхним порогом:
(1.8)
Для выделения областей, в которых значения яркости пикселей может меняться в известном диапазоне, вводится бинаризация с двойным ограничением (t1<t2):
(1.9)
Так же возможны другие вариации с порогами, где пропускается только часть данных (средне полосовой фильтр).
Неполная пороговая обработка дает изображение, которое может быть проще для дальнейшего анализа, поскольку оно становится лишенным фона со всеми деталями, присутствующими на исходном изображении.
(1.10)
Многоуровневое пороговое преобразование формирует изображение, не являющееся бинарным, но состоящее из сегментов с различной яркостью.
(1.11)
При локальной пороговой обработке возможно определение порога на основе градиента яркости изображения или методом использования энтропии гистограммы.
В первом случае можно предположить, что анализируемое изображение можно разделить на два класса - объекты и фон. Алгоритм вычисления порогового значения состоит из следующих 2 шагов:
1. Определяется модуль градиента яркости для каждого пикселя изображения
2.
(1.12)
где
2. Вычисление порога:
(1.13)
Метод использования энтропии гистограммы приобрел свои различные формы описания и возможные вариации. Распределения общей массы порогов на определенное количество с использованием различных законов и форм распределения.
В глобальной пороговая обработка можно выделить несколько методов. Ниже приведены некоторые из них.
Метод Бернсена
1. Обычная квадратная апертура с нечетным числом пикселей пробегает в цикле по всем пикселям исходного изображения. На каждом шаге находится и .
2. Находится среднее значение
(1.14)
Если текущий пиксель больше - он становится белым, иначе - чёрным. - некая константа заданная пользователем.
3. Если среднее меньше порога контраста-то текущий пиксель становится того цвета, который задавался параметром «цвет сомнительного пикселя».
Имеется ряд недостатков: после обработки монотонных областей яркости формируются сильные паразитные помехи, в некоторых случаях приводит к появлению ложных черных пятен.
Метод Эйквила
Одним из самых производительных методов является метод Эйквеля. Его часто применяют для обработки четких и контрастных изображений. Согласно данному методу изображение обрабатывается с помощью двух концентрических окон: маленького - , и большого . Обычно форма окон принимается квадратной. Оба окна последовательно слева направо сверху вниз накладываются на изображение с шагом равным стороне маленького окна . Для окна рассчитывается порог так, чтобы поделить пиксели на два кластера. Если математические ожидания уровня яркости в двух кластерах имеют разницу, превышающую некоторый заданный пользователем уровень , то все пиксели внутри окна S бинаризуются в соответствии с порогом . В противном случае, яркость пикселей из окна заменяется некоторым близким значением.
Метод Ниблэка
Идея данного метода состоит в варьировании порога яркости бинаризации от точки к точке на основании локального значения стандартного отклонения. Порог яркости в точке рассчитывается так:
(1.15)
где - среднее и - среднеквадратичное отклонение выборки для некоторой окрестности точки.
Размер окрестности должен быть минимальным, но таким, чтобы сохранить локальные детали изображения. В то же время размер должен быть достаточно большим, чтобы понизить влияние шума на результат. Значение определяет, какую часть границы объекта взять в качестве самого объекта. Значение задает достаточно хорошее разделение объектов, если они представлены черным цветом, а значение , - если объекты представлены белым цветом.
Метод Яновица и Брукштейна
В качестве пороговой поверхности бинаризации используется поверхность потенциалов, строящаяся на основе локальной максимизации градиента яркости. Значение градиента яркости часто рассчитывается с помощью контурного оператора Собеля или Кэнни. Изображение фильтруется с целью получения контурных линий толщины в 1 пиксель, а затем усредняющим фильтром 3Ч3. Потенциальная поверхность, теперь, строится по итерационной интерполирующей схеме. Расчет поверхности идет в порядке, начиная от контурных пикселей. Для каждого не контурного пикселя рассчитывается интерполяционный остаток и новое значение пикселя на -ом шаге должно рассчитываться в соответствии с формулами:
(1.16)
, (1.17)
где в пределах для быстрой сходимости.
1.4 Сегментация изображения методом управляемого водораздела
В данной работе рассмотрим относительно новый подход к решению задачи сегментации изображений - метод водораздела.
При этом методе предлагается рассматривать изображение как некоторую карту местности, где значения яркостей представляют собой значения высот относительно некоторого уровня. Если эту местность заполнять водой, тогда образуются бассейны. При дальнейшем заполнении водой, эти бассейны объединяются. Места объединения этих бассейнов отмечаются как линии водораздела.
Разделение соприкасающихся предметов на изображении является одной из важных задач обработки изображений. Часто для решения этой задачи используется так называемый метод маркерного водораздела. При преобразованиях с помощью этого метода нужно определить «водосборные бассейны» и «линии водораздела» на изображении путем обработки локальных областей в зависимости от их яркостных характеристик.
Метод маркерного водораздела является одним из наиболее эффективных методов сегментации изображений. При реализации этого метода выполняются следующие основные процедуры:
1. Вычисляется функция сегментации. Она касается изображений, где объекты размещены в темных областях и являются трудно различимыми.
2. Вычисление маркеров переднего плана изображений. Они вычисляются на основании анализа связности пикселей каждого объекта.
3. Вычисление фоновых маркеров. Они представляют собой пиксели, которые не являются частями объектов.
4. Модификация функции сегментации на основании значений расположения маркеров фона и маркеров переднего плана.
5. Вычисления на основании модифицированной функции сегментации.
Приведенные методы сегментации могут применяться для анализа изображений в зависимости от конкретных задач стоящих перед исследователем и возможностями его оборудования.
2. Практическое применение сегментации изображения
2.1 Применение метода бинаризации для создания черно-белой конверсии
сегментация бинаризация изображение водораздел
При попиксельной обработке изображений для типовых операций в инфраструктуре.NET могут возникнуть проблемы с быстродействие при переводе файлов содержащих цветную растровую графику в черно-белую. Рассмотрим применение метода бинаризации на примере RGB изображения Рис. 2.1с использованием программного кода в C++, позволяющую повысить быстродействие.
// следует загрузить картинку
sourceBitmap = (Bitmap) Image. FromFile («Zap.png»);<br/>
// сделать пустую картинку того же размера
targetBitmap = new Bitmap (sourceBitmap. Width, sourceBitmap. Height, sourceBitmap. PixelFormat);<br/>
необходимо чтобы targetBitmap совпадал с sourceBitmap, только черно-белый. В C#, это делается таким образом:
void NaпveBlackAndWhite()<br/>
{<br/>
for (int y = 0; y < sourceBitmap. Height; ++y)<br/>
for (int x = 0; x < sourceBitmap. Width; ++x)<br/>
{<br/>
Color c = sourceBitmap. GetPixel (x, y);<br/>
byte rgb = (byte) (0.3 * c.R + 0.59 * c.G + 0.11 * c.B);<br/>
targetBitmap. SetPixel (x, y, Color. FromArgb (c.A, rgb, rgb, rgb));<br/>
}<br/>
}<br/>
Это решение малоэффективное, хотя и простое. Для увеличения скорости решения можно записать программу на языке C++. Для начала необходимо создать структуру для хранения цветовых значений пикселя
// структура отражает один пиксель в 32bpp RGBA
struct Pixel {<br/>
BYTE Blue;<br/>
BYTE Green;<br/>
BYTE Red;<br/>
BYTE Alpha;<br/>
};<br/>
Теперь можно написать функцию которая будет делать пиксель черно-белым:
Pixel MakeGrayscale (Pixel& pixel)<br/>
{<br/>
const BYTE scale = static_cast<BYTE>(0.3 * pixel. Red + 0.59 * pixel. Green + 0.11 * pixel. Blue);<br/>
Pixel p;<br/>
p. Red = p. Green = p. Blue = scale;<br/>
p. Alpha = pixel. Alpha;<br/>
return p;<br/>
}<br/>
Теперь собственно пишется сама функцию обхода:
CPPSIMDLIBRARY_API void AlterBitmap (BYTE* src, BYTE* dst, int width, int height, int stride)<br/>
{<br/>
for (int y = 0; y < height; ++y) {<br/>
for (int x = 0; x < width; ++x)<br/>
{<br/>
int offset = x * sizeof(Pixel) + y * stride;<br/>
Pixel& s = *reinterpret_cast<Pixel*>(src + offset);<br/>
Pixel& d = *reinterpret_cast<Pixel*>(dst + offset);<br/>
// изменяется d
d = MakeGrayscale(s);<br/>
}<br/>
}<br/>
}<br/>
void UnmanagedBlackAndWhite()<br/>
{<br/>
Rectangle rect = new Rectangle (0, 0, sourceBitmap. Width, sourceBitmap. Height);<br/>
BitmapData srcData = sourceBitmap. LockBits (rect, ImageLockMode. ReadWrite, sourceBitmap. PixelFormat);<br/>
BitmapData dstData = targetBitmap. LockBits (rect, ImageLockMode. ReadWrite, sourceBitmap. PixelFormat);<br/>
AlterBitmap (srcData. Scan0, dstData. Scan0, srcData. Width, srcData. Height, srcData. Stride);<br/>
sourceBitmap. UnlockBits(srcData);<br/>
targetBitmap. UnlockBits(dstData);<br/>
}<br/>
Конечный результат представлен на Рис. 2.1.
Рис. 2.1. Результат сегментации изображения
Приведенный выше код позволяет улучшить быстродействие при переводе цветной растровой графики в черно-белую.
2.2 Применение метода управляемого водораздела для сегментации
Для разделения соприкасающихся предметов на изображении при их обработке в зависимости от яркостных характеристик применяют метод управляемого водораздела.
Для его описания используем пакет Image Processing Toolbox с наиболее часто используемыми функциями fspecial, imfilter, watershed, label2rgb, imopen, imclose, imreconstruct, imcomplement, imregionalmax, bwareaopen, graythresh и imimposemin. Обработку изображения проведем в несколько шагов:
- шаг 1 - считывание цветного изображения и преобразование его в полутоновое;
- шаг 2 - использование значения градиента в качестве функции сегментации;
- шаг 3 - маркировка объектов переднего плана;
- шаг 4 - вычисление маркеров фона;
- шаг 5 - вычисление по методу маркерного водораздела на основании модифицированной функции сегментации;
- шаг 6 - визуализация результата обработки.
Шаг 1: Считывание цветного изображения и преобразование его в полутоновое.
Считаем данные из файла pears.png
rgb=imread ('pears.png');
и представим их в виде полутонового изображения Рис. 2.2.
I=rgb2gray(rgb);
imshow(I)
text (732,501,'…',…
'FontSize', 7,'HorizontalAlignment', 'right')
Рис. 2.2. Полутоновое изображение
Шаг 2: Использование значения градиента в качестве функции сегментации.
Для вычисления значения градиента используется оператор Собеля, функция imfilter и другие вычисления. Градиент имеет большие значения на границах объектов и небольшие (в большинстве случаев) вне границ объектов.
hy=fspecial('sobel');
hx=hy';
Iy=imfilter (double(I), hy, 'replicate');
Ix=imfilter (double(I), hx, 'replicate');
gradmag=sqrt (Ix.^2+Iy.^2);
figure, imshow (gradmag, []), title ('значение градиента')
Рис. 2.3. Значение градиента
Таким образом, вычислив значения градиента, можно приступить к сегментации изображений с помощью рассматриваемого метода маркерного водораздела.
L=watershed(gradmag);
Lrgb=label2rgb(L);
figure, imshow(Lrgb), title('Lrgb')
Рис. 2.4. Lrgb изображение
Однако, без проведения еще дополнительных вычислений, такая сегментация будет поверхностной.
Шаг 3: Маркировка объектов переднего плана.
Для маркировки объектов переднего плана могут использоваться различные процедуры. В этом примере будут использованы морфологические технологии, которые называются «раскрытие через восстановление» и «закрытие через восстановление». Эти операции позволяют анализировать внутреннюю область объектов изображения с помощью функции imregionalmax.
Как было сказано выше, при проведении маркировки объектов переднего плана используются также морфологические операции. Рассмотрим некоторые из них и сравним. Сначала реализуем операцию раскрытия с использованием функции imopen.
se=strel ('disk', 20);
Io=imopen (I, se);
figure, imshow(Io), title('Io')
Рис. 2.5. Раскрытие с использованием функции imopen
Далее вычислим раскрытие с использованием функций imerode и imreconstruct.
Ie=imerode (I, se);
Iobr=imreconstruct (Ie, I);
figure, imshow(Iobr), title('Iobr')
Рис. 2.6. Раскрытие с использованием функций imerode и imreconstruct
Последующие морфологические операции раскрытия и закрытия приведут к перемещению темных пятен и формированию маркеров. Проанализируем операции морфологического закрытия. Для этого сначала используем функцию imclose:
Ioc=imclose (Io, se);
figure, imshow(Ioc), title('Ioc')
Рис. 2.7. Результат применения функции imclose
Далее используем функцию imdilate, которая применяется вместе с функцией imreconstruct. Отметим, что для реализации операции imreconstruct необходимо провести операцию дополнения изображений.
Iobrd=imdilate (Iobr, se);
Iobrcbr=imreconstruct (imcomplement(Iobrd), imcomplement(Iobr));
Iobrcbr=imcomplement(Iobrcbr);
figure, imshow(Iobrcbr), title('Iobrcbr')
Рис. 2.8. Результат применения функцию imdilate совместно с функцией imreconstruct
Сравнительный визуальный анализ Iobrcbr и Ioc показывает, что представленная реконструкция на основе морфологических операций открытия и закрытия является более эффективной в сравнении с стандартными операциями открытия и закрытия. Вычислим локальные максимумы Iobrcbr и получим маркеры переднего плана.
fgm=imregionalmax(Iobrcbr);
figure, imshow(fgm), title('fgm')
Рис. 2.9. Маркеры переднего плана
Наложим маркеры переднего плана на исходное изображение.
I2=I;
I2 (fgm)=255;
figure, imshow(I2), title ('fgm, наложенное на исходное изображение')
Рис. 2.10. Маркеры переднего плана, наложенные на исходное изображение
Отметим, что при этом некоторые скрытые или закрытые объекты изображения не являются маркированными. Это свойство влияет на формирование результата и многие такие объекты изображения не будут обработаны с точки зрения сегментации. Таким образом, маркеры переднего плана отображают границы только большинства объектов. Представленные таким образом границы подвергаются дальнейшей обработке. В частности, это могут быть морфологические операции.
se2=strel (ones(5, 5));
fgm2=imclose (fgm, se2);
fgm3=imerode (fgm2, se2);
В результате проведения такой операции пропадают отдельные изолированные пиксели изображения. Также можно использовать функцию bwareaopen, которая позволяет удалять заданное число пикселей.
fgm4=bwareaopen (fgm3, 20);
I3=I;
I3 (fgm4)=255;
figure, imshow(I3)
title ('fgm4, наложенное на исходное изображение')
Рис. 2.11. fgm4, наложенное на исходное изображение
Шаг 4: Вычисление маркеров фона.
Теперь проведем операцию маркирования фона. На изображении Iobrcbr темные пиксели относятся к фону. Таким образом, можно применить операцию пороговой обработки изображения.
bw=im2bw (Iobrcbr, graythresh(Iobrcbr));
figure, imshow(bw), title('bw')
Рис. 2.12. Результат пороговой обработки изображения
Пиксели фона являются темными, однако нельзя просто провести морфологические операции над маркерами фона и получить границы объектов, которые мы сегментируем. Мы хотим «утоньшить» фон таким образом, чтобы получить достоверный скелет изображения или, так называемый, передний план полутонового изображения. Это вычисляется с применением подхода по водоразделу и на основе измерения расстояний (до линий водораздела).
D=bwdist(bw);
DL=watershed(D);
bgm=DL==0;
figure, imshow(bgm), title('bgm')
Рис. 2.13. Результат подхода по водоразделу
Шаг 5: Вычисление по методу маркерного водораздела на основании модифицированной функции сегментации.
Функция imimposemin может применяться для точного определения локальных минимумов изображения. На основании этого функция imimposemin также может корректировать значения градиентов на изображении и таким образом уточнять расположение маркеров переднего плана и фона.
gradmag2=imimposemin (gradmag, bgm | fgm4);
И наконец, выполняется операция сегментации на основе водораздела.
L=watershed(gradmag2);
Шаг 6: Визуализация результата обработки.
Отобразим на исходном изображении наложенные маркеры переднего плана, маркеры фона и границы сегментированных объектов.
I4=I;
I4 (imdilate(L==0, ones (3, 3))|bgm|fgm4)=255;
figure, imshow(I4)
title ('Маркеры и границы объектов, наложенные на исходное изображение')
Рис. 2.14. Маркеры и границы объектов, наложенные на исходное изображение
В результате такого отображения можно визуально анализировать месторасположение маркеров переднего плана и фона.
Представляет интерес также отображение результатов обработки с помощью цветного изображения. Матрица, которая генерируется функциями watershed и bwlabel, может быть конвертирована в truecolor-изображение посредством функции label2rgb.
Lrgb=label2rgb (L, 'jet', 'w', 'shuffle');
figure, imshow(Lrgb)
title('Lrgb')
Рис. 2.15. Конвертация в truecolor-изображение
Также можно использовать полупрозрачный режим для наложения псевдоцветовой матрицы меток поверх исходного изображения.
figure, imshow(I), hold on
himage=imshow(Lrgb);
set (himage, 'AlphaData', 0.3);
title ('Lrgb, наложенное на исходное изображение в полупрозрачном режиме')
Рис. 2.16. Lgbr, наложенное на исходное изображение в полупрозрачном режиме
Как видно из результатов обработки достигается качественное разделение соприкасающихся предметов, как в черно-белом, так и в цветном виде.
Заключение
сегментация бинаризация изображение водораздел
Сегментация изображения является важным предварительным шагом большинства задач автоматического распознавания зрительных образов и анализа сцен, содержащих объект достаточно однородной яркости на фоне другой яркости. Если яркости точек объекта резко отличаются от яркостей точек фона, то решение задачи установления порога является несложной задачей. На практике это не так просто, поскольку исследуемое изображение подвергается воздействию шума и на нем допускается некоторый разброс значений яркости.
В ходе курсовой работы в первой главе были рассмотрены различные методы сегментации изображений (локальная обработка, бинаризация и т.д.), и был совершен сравнительный анализ этих методов, показывающий область их эффективного применения.
Во второй главе приведены примеры практического применения методов сегментации изображения. Так методом бинаризации был проведен перевод растровой графики цветового диапазона RGB в черно-белую с приведением программного кода на языке С++, позволивший улучшить быстродействие. Применение метода управляемого водораздела позволило отделить передний план изображения от фоновой части и указать границы разделение соприкасающихся предметов, как в черно-белом, так и в цветном виде.
Стоит также отметить, что единого алгоритма, который позволял бы проводить приемлемую сегментацию для любого изображения, не существует.
Список использованных источников
1. http://matlab.exponenta.ru/imageprocess/book2/48.php
2. https://habrahabr.ru/post/60085/
3. Р. Гонсалес, Р. Вудс Цифровая обработка изображений /М.: Техносфера, 2005-1072 с.
4. Canny J.F. (1983) Finding edges and lines in images, Master's thesis, MIT. AI Lab. TR-720.
5. Canny J.F. (1986) A computational approach to edge detection, IEEE Transaction on Pattern Analysis and Machine Intelligence, 8. - P. 679-714.
6. Courtney P, Thacker N.A. (2001) Performance Characterization in Computer Vision: The Role of Statistics in Testing and Design, Chapter in: Imaging and Vision Systems: Theory, Assessment and Applications, Jacques Blanc-Talon and Dan Popescu (Eds.), NOVA Science Books.
7. Hanzi Wang (2004) Robust Statistics for Computer Vision: Model Fitting, Image Segmentation and Visual Motion Analysis, Ph.D thesis, Monash University, Australia.
8. Huber P.J. (1981) Robust Statistics, Wiley New York.
9. Kirsch R. (1971) Computer determination of the constituent structure of biological images, Computers and Biomedical Research, 4. - P.315-328.
10. Lakshmi S, Sankaranarayanan V. (2010) A Study of edge detection techniques for segmentation computing approaches, Computer Aided Soft Computing Techniques for Imaging and Biomedical Applications. - P.35-41.
11. Lee K., Meer P. (1998) Robust Adaptive Segmentation of Range Images, IEEE Trans. Pattern Analysis and Machine Intelligence, 20 (2). - P. 200-205.
12. Marr D, Hildreth E. (1980) Theory of edge detection, Proc. Royal Society of London, B, 207. - P.187-217.
13. Marr D. (1982) Vision, Freeman Publishers.
14. Marr P., Doron Mintz. (1991) Robust Regression for Computer Vision: A Review, International Journal of Computer Vision, 6 (1). - P.59-70.
15. Orlando J. Tobias, Rui Seara (2002) Image Segmentation by Histogram Thresholding Using Fuzzy Sets, IEEE Transactions on Image Processing, Vol.11, No.12. - P.1457-1465.
16. Punam Thakare (2011) A Study of Image Segmentation and Edge Detection Techniques, International Journal on Computer Science and Engineering, Vol 3, No.2. - P.899-904.
17. Rafael C., Gonzalez, Richard E. Woods, Steven L. Eddins (2004) Digital Image Processing Using MATLAB, Pearson Education Ptd. Ltd, Singapore.
18. Ramadevi Y. (2010) Segmentation and object recognition using edge detection techniques, International Journal of Computer Science and Information Technology, Vol 2, No.6. - P.153-161.
19. Roberts L. (1965) Machine Perception of 3-D Solids, Optical and Electro-optical Information Processing, MIT Press.
20. Robinson G. (1977) Edge detection by compass gradient masks, Computer graphics and image processing, 6. - P.492-501.
21. Rousseeuw P.J., Leroy A. (1987) Robust Regression and outlier detection, John Wiley & Sons, New York.
22. Senthilkumaran N., Rajesh R. (2009) Edge Detection Techniques for Image Segmentation - A Survey of Soft Computing Approaches, International Journal of Recent Trends in Engineering, Vol. 1, No. 2. - P. 250-254.
23. Sowmya B., Sheelarani B. (2009) Colour Image Segmentation Using Soft Computing Techniques, International Journal of Soft Computing Applications, Issue 4. - P. 69-80.
24. Umesh Sehgal (2011) Edge detection techniques in digital image processing using Fuzzy Logic, International Journal of Research in IT and Management, Vol.1, Issue 3. - P. 61-66.
25. Yu, X, Bui, T.D. & et al. (1994) Robust Estimation for Range Image Segmentation and Reconstruction, IEEE trans. Pattern Analysis and Machine Intelligence, 16 (5). - P.530-538.
Размещено на Allbest.ru
Подобные документы
Выбор методов обработки и сегментации изображений. Математические основы примененных фильтров. Гистограмма яркости изображения. Программная реализация комплексного метода обработки изображений. Тестирование разработанного программного обеспечения.
курсовая работа [1,3 M], добавлен 18.01.2017Задачи цифровой обработки изображений. Методы пороговой сегментации. Создание программы представления рисунка в виде матрицы и применения к нему пороговой обработки. Разработка интерфейса программы загрузки и фильтрации изображения с выбранным порогом.
курсовая работа [2,0 M], добавлен 12.11.2012Обзор математических методов распознавания. Общая архитектура программы преобразования автомобильного номерного знака. Детальное описание алгоритмов: бинаризация изображения, удаление обрамления, сегментация символов и распознавание шаблонным методом.
курсовая работа [4,8 M], добавлен 22.06.2011Разработка программы, предназначенной для сжатия или компрессии полутонового изображения международным стандартом JPEG. Описание метода JPEG, выдача результатов в виде декодированного изображения. Обзор методов компрессии полутонового изображения.
курсовая работа [43,5 K], добавлен 14.10.2012Разработка программного приложения на С#, распознающее буквы и цифры с фотографии автомобильного номера. Алгоритм работы с изображением: коррекция яркости, избавление от шума камеры, повышение резкости границ, бинаризация, сегментация и распознавание.
контрольная работа [942,6 K], добавлен 22.01.2015Информация о графических форматах. Хранение изображения в программе. Очередь как вспомогательная структура данных. Загрузка изображения из двоичного файла. Операции с изображением. Уменьшение разрешающей способности. Увеличение размера изображения.
курсовая работа [1,1 M], добавлен 29.06.2013Описание алгоритма поворота изображения. Вычисление синуса и косинуса угла поворота изображения. Алгоритм и реализация функции поворота изображения вокруг центра на заданный пользователем угол. Проверка на соответствие диапазону допустимых значений.
курсовая работа [1,3 M], добавлен 23.01.2015Описание этапов создания анимированного GIF изображения мультипликационного героя "Винни-Пуха" в программе Adobe Photoshop CS6. Создание дубликата слоя изображения и подготовка кадров для GIF анимации. Настройка эффектов анимации и результат GIF-файла.
лабораторная работа [1,2 M], добавлен 05.03.2015Описание различных методов цветовой коррекции для трехмерного изображения, проектировка и реализация соответствующих шейдеров. Разработка архитектуры программного приложения и диаграмм вариантов использования, классов, развертывания и последовательности.
дипломная работа [2,0 M], добавлен 06.04.2015Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.
курсовая работа [1,5 M], добавлен 11.12.2012