Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСИ / АСУ_Меркулова_Обработка изображений_метод_лаб.doc
Скачиваний:
27
Добавлен:
03.03.2016
Размер:
3.07 Mб
Скачать

Imfeature Обчислення ознак об'єктів

Синтаксис:

feats = imfeature (L, measurements, n)

Опис:

Функція feats = imfeaturе (L, measurements, n) обчислює ознаки всіх об'єктів, зазначених у матриці номерів об'єктів L. Елементи матриці L, що мають значення 1, відносяться до першого об'єкту, що мають значення 2 відносяться до другого об'єкта і т. д. Якщо елемент в матриці L дорівнює 0, то він відноситься до фону.

Значення ознак повертаються в масиві структур feats. Кількість елементів масиву feats дорівнює максимальному елементу матриці L (mах (L (:))) і, отже, кількості об'єктів на зображенні. Кожна структура містить ознаки для одного об'єкта. Які саме ознаки входять в структуру feats, визначається параметром ineasurcments. Якщо в якості параметра measurements зазначити рядок 'all', то будуть обчислені всі перераховані нижче ознаки. Якщо параметр measurements опущений або є рядком oasic ', то обчислюються ознаки' Area ',' Centroid 'і' BoundingBox '. Замість параметра measurements можна через кому перерахувати ті ознаки, які необхідно обчислити. Імена полів структур з масиву feats збігаються з іменами обчислюваних ознак. Обчислювані ознаки можна умовно розбити на 5 груп: різні типи зображень об'єкта, габарити об'єкта, різні варіанти визначення площі об'єкта, коефіцієнти форми і всі залишилися ознаки. Розглянемо окремо кожну групу.

Зображення об'єктів частіше за все необхідні для подальшої обробки або використовуються для візуалізації об'єктів.

Параметр measurements

Опис

Тип даних

'Image'

Зображеня об’єкта

Бінарне зображення, яке використовує формат представлення даних uint8

‘FilledImage'

Зображеня об’єкта з "залитими" дірками

Бінарне зображення, яке використовує формат представлення даних uint8

'ConvexImage'

Зображеня "залитого" пікселями об’єкта опуклого багатокутника, в який вписано об'єкт

Бінарне зображення, яке використовує формат представлення даних uint8

Проілюструємо різницю між різними типами зображенні об'єкта. На рис. 2.39, а показано вихідне зображення, на рис. 2.39, б - зображення, що повертається в полі Image, на рис. 2.39. в - зображення, що повертається в полі FilledImage, на рис. 2.39, г - зображення, що повертається в полі Convex Image.

Часто буває необхідно визначити місце розташування в полі зору об'єкта в цілому або місце розташування його окремих пікселів. Для цих цілей можуть бути різні способи опису габаритів об'єкта:

Параметр measurements

Опис

Тип даних

'BoundingBox'

Обмежуючий прямокутник

Масив [х у width height], где (х, у) - координати лівого верхнього кута прямокутника, width - ширина, height - высота прямоугольника

'ConvexHull'

Випуклий багатокутник, в який вписано об'єкт

Матриця Мх2, кожен рядок матриці вміщає (х, у) координати вершин багатокутника

‘Extrema'

Экстремальні координати объекта

Матриця &х2 [top-left top-right right-top right- bollom bottom right bottom left left bottom left top] вміщає екстремальні координати об’єкта

'PixelList'

Список всіх пікселів об’кта

Nx2 матрицю кожен рядок вміщає (х, у) координати; центрів усіх пікселів объекта

У всіх перерахованих ознак координати вказуються у просторовій системі координат. На рис. 2.40 показані обмежений прямокутник і екстремальні координати об'єкту.

Розглянуті нижче ознаки використовуються, як правило, для статичного оцінювання форми чи величини об'єктів на зображенні або класифікації об'єктів. Іноді їх називають морфометричними ознаками. Площа є одною з основних морфометричних ознак. Вона широко використовується для опису об'єктів та обчислення коефіцієнтів форми. Різні варіанти обчислення площі об'єкта пов'язані з розглянутими типами подання зображення об'єкта:

Параметр measurements

Опис

Тип даних

'Area'

Площа: кількість пікселів объекта

Число

‘FilledArea'

Повна площа: кількість пікселів об'єкта плюс кількість пікселів дірок в об'єкті. Відповідає площі зображення Filledlmage

Число

'Convex Area'

Опукла площа: площа опуклого багатокутника, в який вписано об'єкт. Відповідає площі зображення Convex Image

Число

До основних морфометричних ознак також належать такі ознаки:

Параметр measurements

Опис

Тип даних

'Centroid'

Центр мас об'єкта

Двохелементний масив,

[ х у] - координати центр мас у просторовій

системі координат

'EquivDiameter'

Еквівалентний діаметр: діаметр

кола з площею Аrеа,

дорівнює sqrt (4 * Area / pi )

Число

' MajorAxisLensth'

Довжина максимальної осі інерції

Число

'MinorAxis- Lcngth'

Довжина мінімальної осі інерції

Число

'Orientation'

Орієнтація: кут в градусах між

максимальної віссю інерції і віссю X

Число

'EulcrNumber'

Число Ейлера: кількість об'єктів

з однаковим індексом в матриці L

мінус кількість дірок у цих об'єктах

Число

Коефіцієнти форми необхідні для того, щоб математично описати форму об'єкта. Можна запропонувати чимало способів визначення коефіцієнта форми, кожен з яких призначений для вирішення певного кола завдань. Функція imfeature може обчислити 3 типи коефіцієнтів форми:

Параметр measurements

Опис

Тип даних

'Solidity'

Коефіцієнт опуклості: дорівнює

відношенню площі до опуклої

площі об'єкта Area / ConvexArea

Число в диапазоні (0,1]

‘Extent'

Коефіцієнт заповнення: дорівнює

відношенню площі об'єкта до площі обмежуючого прямокутника Area / ( width * height )

Число в диапазоні (0,1]

'Eccentricity'

Ексцентриситет еліпса з головними моментами інерції, рівними головним моментам інерції об'єкта

Число в диапазоні [0,1]

Розглянемо різницю між різними коефіцієнтами форми. На рис. 2.41, а- е наведені зображення об'єктів різної форми, а в таблиці нижче - коефіцієнти, що відповідають об'єктам з цих зображень.

Зображення

Solidity

Extent

Eccentricity

а) Коло

0.9781

0.7822

0

б) Эліпс

0.9665

0.6602

0.8769

в) Квадрат

0.9669

0.6905

0.0501

г) Прямокутник з відношенням сторін 1:3

0.9495

0.4861

0.9454

д) Прямокутник з відношенням сторін 1:12

0.8816

0.2071

0.9971

е) S -подібний об'єкт

0.4595

0.4208

0.8728

При обчисленні деяких ознак, наприклад числа Ейлера, використовується критерій зв'язності. Він передається в параметрі n і може приймати значення 4 або 8 ( значення за замовчуванням).

Алгоритм:

При обчисленні ряду морфометричних ознак використовуються поняття механіки твердого тіла. Зокрема, це відноситься до довжин осей інерції об'єкта. Напрямки в тілі, що збігаються з півосями еліпсоїда інерції, називають головними осями інерції. Для знаходження головних осей інерції, що лежать в площині об'єкта, у функції imfeature використовуються наступні співвідношення [ 1, 2, 3 ].

Нехай N - кількість пікселів, що відносяться до об'єкта. Всі безліч пікселів р ( х, у ), що відносяться до об'єкта, позначимо Ω. Тоді координати центру мас об'єкту обчислюються як

xc=1/N*

yc=1/N*

Обчислимо кілька допоміжних величин

Ux=1/12+1/N*

Uy=1/12+1/N*

Uxy=1/12+1/N*

C=

Тоді довжини максимальної аmax і мінімальної аmin і, осей інерції обчислюються як

Amax=2

Amin=2

Довжини головних осей інерції використовуються для обчислення ексцентриситету і орієнтації об'єкта.

Ексцентриситет визначається за допомогою співвідношення

Орієнтація визначається як кут в градусах між максимальною віссю інерції і віссю X. Якщо Uy > Ux, то орієнтація О обчислюється за допомогою формули

O=180/π*arctg()

у противному випадку О обчислюється як O=180/π*arctg()

Приклад:

Побудуємо гістограму площ об'єктів зображення, розглянутого в прикладі до функції bwmorph ( рис. 2.35, а). Припустимо, що нас цікавлять тільки об'єкти округлої форми, які не стосуються межі зображення. Нехай у результаті бінаризації і морфологічних операцій сформовано бінарне зображення BWI, показане на рис. 2.42, а.

На цьому зображенні виділяються об'єкти. Обчислюються їх площі і координати центрів мас. Потім виключаються з розгляду об'єкти, що мають маленьку площу або розташовані неподалік кордонів зображення. Результат цих операцій показаний на рис. 2.42,6. Після цього операція пошуку об'єктів повторюється, при цьому формується матриця L, яка відображається на екрані як палітрове зображення, на якому кожен об'єкт забарвлений унікальним кольором ( рис. 2.42, в і кольоровий рис. 6 на обкладинці книги). На закінчення обчислюються площі об'єктів і будується гістограма площ ( рис. 2.42, г).

% examp37.m

% Приклад демонструє побудову гістограми площ об'єктів,

% Не стосуються кордонів зображення.

% Читання вихідного зображення і виведення його на екран.

BW1 = imread ( ' split_bw.tif ' );

imshow ( BW1 );

% Пошук об'єктів.

[ L num ] = bwlabel ( BW1, 8);

% Обчислення ознак об'єктів:

% площ і координат центрів мас.

feats = imfeature ( L, ' Area ', ' Centroid ', 8);

% Переписування значень ознак

% з масиву структур feats в окремі масиви.

Areas = zeros ( num );

CentX = zeros ( num );

CentY = zeros ( num );

for i = 1:1: num

Areas ( i ) = feats ( i ). Area;

CentX ( i ) = feats ( i ). Centroid (1);

CentY ( i ) = feats ( i ). Centroid (2);

end;

% Формування бінарного зображення з об'єктами,

% площа яких більше 30 пікселів, а центр мас об'єкта віддалений

% від кордонів зображення більш ніж на 20 пікселів,

[ rows cols ] = size ( BW1 );

idx = find ( Areas > 30 & CentX > 20 & CentY > 20...

& CentX < ( cols - 20 ) & CentY < ( rows - 20) );

BW1 = ismember ( L, idx );

figure, imshow ( BW1 );

% Знову пошук об'єктів.

[ L num ] = bwlabel ( BW1, 8);

figure, imshow ( L 1 ( jet ( num 1));

% Обчислення площ об'єктів.

feats = irnfeature ( L, ' Area ', 8);

% Побудова гістограми площ об'єктів.

figure, hist ( [ feats.Area ] );

BWSELECT Виділення об'єкта

Синтаксис:

BWD = bwselect ( BWS, c, r, n )

BWD = bwselect ( BWs, n )

[ BWD, idx ] = bwselect (...)

BWD = bwselect ( x, y, BW1, xi, yi, n )

[ x, y, BWD, idx, xi, yi ] = bwselect (...)

Опис:

Функція BWD = bwselect ( BWs, с, r, n ) створює нове бінарне ізображніе BWD містить об'єкт вихідного зображення BWS який включає в себе піксель з ​​координатами ( r, с). Піксель, з якого починається виділення об'єкта, називають затравочним. Якщо параметри к і с являються векторами однакової довжини, то з зображення BWS на зображення BW переносяться всі об'єкти з координатами затравочних пікселів ( r ( k ), c ( k ) ).

Параметр n для всіх розглянутих функцій bwselect задає критерій зв'язності для пікселів об'єкта. Цей параметр може приймати значення 4 або 8 ( значення за замовчуванням).

Функція BWD = bwselect ( ( BWs, n ) виводить зображення BWs на екран і надає користувачеві можливість інтерактивно відзначити затравочні пікселі. Всі об'єкти, які містять хоча б один із зазначених пікселів, переносяться з зображення BWS на зображення BWD. Координати затравочних пікселів задаються одноразовим клацанням лівої клавіші миші. Попередній заданий затравочний піксел можна видалити, якщо натиснути клавішу Backspace або Delete. Останній затравочний піксель задається подвійним клацанням лівої клавіші миші або одноразовим клацанням правої клавіші миші. Натискання клавіші Enter завершує процес виділення затравочних пікселів без додавання ще одного затравочного пікселя. Відразу після натискання клавіші Enter або вибору останнього затравочного пікселя створюється нове бінарне зображення BWD.

Функція [ BWD, idx ] = bwselect (...) додатково повертає вектор idx, що дозволяє визначити координати всіх пікселів всіх об'єктів зображення BWD. Координату ( r, с) пікселя за значенням idx ( k ) можна обчислити за допомогою наступних співвідношень;

з = fix ( ( idx ( k ) rows - 1) / rows );

r = idx ( k ) - rows * ( з - 1 ),

де rows - кількість рядків у вихідному зображенні.

Функція BWD = bwselect ( x, у, BWS, xi, yi, n ) створює нове бінарне зображення BWD містить ті об'єкти вихідного зображення BWs, які включають в себе затравочні пікселі з координатами, що передаються у векторах xi і yi. Координати в xi і yi вказуються у просторовій системі координат. Діапазони зміни координат просторової системи координат встановлюються для зображення BWD двокомпонентними векторами х та у.

Функція [ х, у, BWD, idx, xi, yi ] = bwselect (...) додатково повертає вектори координат xi і yi, відповідних координатах центрів пікселів об'єктів з зображення BWD. Діапазони зміни координат просторової системи координат, встановлені для вихідного зображення, повертаються в двокомпонентних векторах х та у.

Якщо функція bwselect використовується без вихідних параметрів, наприклад bwselecl ( BWs, 10, 30 ), то зображення ,яке вийшло в результаті відображення на екрані в новому вікні.

Результуюче зображення має формат представлення даних uint8.

Приклад:

Припустимо, на бінарному зображенні, що містить 6 об'єктів, потрібно залишити тільки два з них. Це робиться шляхом передачі у функцію bwselect координат двох пікселів, кожен з яких належить одному з вибраних об'єктів.

Початкове зображення і отриманий результат показані відповідно на рис. 2.38, а і 2.38, б.

% examop36.m

% Приклад демонструє роботу функції bwselect.

% Читання вихідного зображення і виведення його на екран.

BW = imread ( ' circles.bmp ' );

imshow ( BW )

% Вибір двох об'єктів.

BW = bwselect ( BW, [83 168], [ 161 51], 8);

% Вивід результату на екран.

figure, imshow ( BW );

Завдання:

1. Зчитати зображення

2. Виділити межі об'єкта

3. Провести бінаризацію зображення

4. Виділити кордони бінарних об'єктів

5. Побудувати гістограми одного з ознак об'єкта

6. Виділити певний об'єкт і визначити його:

- площу;

- центр мас;

- коефіцієнт опуклості;

- коефіцієнт заповнення.