Здавалка
Главная | Обратная связь

Визначення лінійних розмірів.



Загальний розмір деталі є відомим (60×30 мм) і буде являтись для нас еталоном. Таким чином, завданням для виконання даної практичної роботи буде: знаходження розмірів (радіуса, або діаметра) отворів у деталі, відстані між ними та кутів взаєморозміщення отворів деталі.

Знаходження радіусу, або діаметру отвору. Для автоматичного визначити діаметру отвору у деталі по його зображенню скористаємось найпростішою формулою знаходження діаметру через площу кола:

 

 

де: S – площа кола, d – діаметр, r – радіус,

 

Для того, щоб скористатись формулою знаходження радіуса через площу, достатньо знайти повну площу фігури, вписаної у багатокутник.

В даному випадку, для аналізу зображення, використаємо функцію regionprops. За даною функцією можна визначити ряд параметрів, таких як: площа, центр мас, лінійні розмірності, ексцентриситет, тощо.

 

Синтаксис:

STATS=regionprops(L, properties)

 

Функція stats=regionprops(L,properties) вимірює набір характеристик для кожної області, зазначеної в матриці міток L. додатні дійсні елементи L відповідають різним областям. Наприклад, набір елементів L рівних 1 відповідає 1-й області, набір елементів L рівних 2 відповідає 2-й області т.д. Результуюча мінлива stats має структуру у вигляді масиву довжиною max(L(:)). Поля структурного масиву позначають різні виміри для кожного регіону і визначають їх характеристики.

Характеристики можуть перераховуватися у вигляді рядка, осередок масиву містить рядок одиниць, рядок 'all' або 'basic'. Нижче наведено список всіх строкових характеристик.

 

Приклад:

Area: 190

Centroid: [20.684 26.668]

BoundingBox: [12.5 18.5 16 16]

SubarrayIdx: {1x2 cell}

MajorAxisLength: 15.766

MinorAxisLength: 15.441

Eccentricity: 0.2019

Orientation: -46.205

ConvexHull: [41x2 double]

ConvexImage: [16x16 logical]

ConvexArea: 197

Image: [16x16 logical]

FilledImage: [16x16 logical]

FilledArea: 190

EulerNumber: 1

Extrema: [8x2 double]

EquivDiameter: 15.554

Solidity: 0.96447

Extent: 0.74219

PixelIdxList: [190x1 double]

PixelList: [190x2 double]

Perimeter: 49.456

Коли характеристики представлені рядком 'all', тоді обчислюються всі перераховані вище вимірювання.

Коли характеристики не визначені або визначені опцією 'basic', тоді проводяться такі вимірювання: 'Area', 'Centroid' і 'BoundingBox'.

'Area' – скаляр (значення площі). Дійсне число пікселів у зазначеній області. (Це значення може дещо відрізнятися від значення, що видається функцією bwarea).

'Centroid' – вектор із розмірністю 1×ndims (L). Центр мас області. Відзначимо, що першим елементом характеристики Centroid являється горизонтальна координата (або x-координата) центру мас, а другим елементом є вертикальна координата (або y-координата).

'BoundingBox' – вектор 1×ndims (L)*2; мінімальний прямокутник, що вміщає розглянуту локальну область. BoundingBox є вектором – [ul_corner width], де ul_corner представляється у формі [x y z] і описує верхній-лівий кут обмежуючого прямокутника; width представляється у формі [x_width y_width] і визначає ширину вздовж кожної розмірності.

 

Приклад:

m=60;

n=30;

Sd=m*n;

bws=regionprops(bw,'FilledArea');

sd=bws.FilledArea;

bwi=imcrop(~bw,[50 75 150 70]);

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

figs=regionprops(L,'All');

d=ones(1,num);

for i=1:num

s=figs(i).Area;

d(i)=round(2*sqrt((Sd*s/sd)/pi));

pl=figs(i).Image;

subplot(1,num,i)

imshow(pl);

end;

d=

6 2 5 4 3

 

Рис. 7.6. Зображення отворів у деталі, розподілених за допомогою

функції regionprops

 

Таким чином, ми визначили, що діаметри отворів у деталі рівні 6, 2, 5, 4 та 3 мм. Розпізнавання об’єктів відбувається за напрямом: зліва-направо та зверху-вниз.

Знаходження відстані між отворами. Для автоматичного визначення відстаней між отворами деталі, необхідно визначити координати центру кожного з отворів, після чого розрахувати різницю між значеннями координат і співставити ці величини до лінійних розмірів масштабу.

Для кращого сприйняття постановки та рішення завдання зробимо позначення на наступному зображенні (рис. 7.7), яке відображає послідовність детектування отворів на зображення.

 

Рис. 7.7. Зображення деталі із позначеннями вимірювальних елементів

 

Зауважимо, що детектування елементів на зображенні відбувається так само як і накладання координатної сітки, в послідовності зверху-вниз, зліва-направо.

Для знаходження відстаней між отворами на деталі, по його зображенню, спочатку слід визначити координати центрів отворів за допомогою функції regionprops із характеристикою Centroid. Для зручності роботи із даними, перепозначимо отвори деталей буквами латинського алфавіту (рис. 7.8.), які будуть виступати в якості змінних і відображати центри отворів із відповідними координатами.

Після чого скористатись формулою знаходження відстані між двома точками, що дорівнює кореню квадратному з суми квадратів різниць однорідних координат:

 

.

 

Зауважимо, що відрізком у двомірному просторі – називається пряма, яка обмежується двома точками з однорідними координатами. Якщо відрізок покладено на геометричну площину без вектора напряму, то порядок його опису визначається відповідно до початку координат.

Таким чином, нам потрібно знайти довжини відрізків: AB, AC, AD, AE, BC, BD, BE, CD і CE.

C
B
А
D
E

Рис. 7.8. Зображення деталі із позначеннями вимірювальних елементів

 

Перш ніж приступити до розрахунку довжини відрізка, слід визначити коефіцієнт масштабу, для співвідношення лінійного розміру деталі до кількості пікселів на його зображенні. Для цього зручно скористатись значенням периметру, так як цей параметр є лінійним і його у пікселях можна визначити за допомогою характеристики Perimeter функції regionprops.

 

Приклад:

m=60;

n=30;

bwp=regionprops(bw,'Perimeter');

p=bwp.Perimeter;

P=2*(n+m);

l=P/p;

 

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

 

Приклад:

bws=regionprops(bwi,'Centroid');

A=bws(1).Centroid;

B=bws(2).Centroid;

C=bws(3).Centroid;

D=bws(4).Centroid;

E=bws(5).Centroid;

AB=sqrt((B(1)-A(1))^2+(B(2)-A(2))^2)*l;

AC=sqrt((C(1)-A(1))^2+(C(2)-A(2))^2)*l;

AD=sqrt((D(1)-A(1))^2+(D(2)-A(2))^2)*l;

AE=sqrt((E(1)-A(1))^2+(E(2)-A(2))^2)*l;

...

 

AB=

11.703

AC=

19.393

AD=

41.314

AE=

40.567

 

Знаходження кутів взаєморозміщення отворів на деталі. Для автоматичного визначення кутів взаєморозміщення отворів деталі, необхідно визначити координати центру кожного з отворів, після чого умовно утворити відрізки по точках, які являються центрами отворів і визначити кути взаєморозміщення точок перетину між цими прямими.

Нижче наведено приклад визначення одного з кутів взаєморозміщення отворів A, B та C на деталі (рис. 7.9). Визначимо взаємний кут φ між прямими AB та AC, у точці перетину А.

 

φ
C
B
А

Рис. 7.9. Позначення одного з кута взаєморозміщення між

отворами A, B та C

 

Для того, щоб визначити значення кутів, потрібно скористатись нормальним рівнянням прямої, яка проходить через дві точки:


.

 

Якщо рівняння проходить через дві крапки, то можна визначити її кутовий коефіцієнт:

 

.

 

Якщо відомо два кутових коефіцієнти, то один з кутів між цими прямими визначається за формулою:

 

.

 

Приклад:

K1=(B(2)-A(2))/(B(1)-A(1));

K2=(C(2)-A(2))/(C(1)-A(1));

fi=180/pi*atan(abs(k2-k1)/(1+k1*k2));

 

Завдання

 

Відповідно до свого спискового номера, журналу академгрупи, отримати у викладача пронумеровану деталь.

Для виконання даного практичного завдання, з використанням функцій Image Acquisition Toolbox та Image Processing Toolbox, визначити розміри (радіус, або діаметр) отворів у деталі, відстані між ними та кути взаєморозміщення отворів деталі. Загальний розмір деталі є відомим (60×30 мм) і являється еталоном для визначення коефіцієнта масштабу.

Зробити відповідні висновки та оформити звіт.

 

Контрольні запитання

1. Поясніть, яким чином працює система формування зображень (СФЗ)?

2. Яку функцію в телевізійних вимірювальних системах виконує датчик первинних відліків (ДПВ)?

3. Поясніть принцип апаратної реалізації телевізійної вимірювальної системи.

4. Поясність принцип програмної реалізації телевізійної вимірювальної системи.

5. Який модуль є не обов’язковим у телевізійній вимірювальній системі, відповідно до загальної функціональної схеми?

6. Назвіть основні морфологічні ознаки об'єктів?

7. Охарактеризуйте похибки, які виникають після бінаризації зображень.

8. Назвіть основні характеристики, які має структурований масив, після виконання функції regionprops.

9. Які геометричні рівняння та функції використовуються у даній практичній роботі?

10. Які особливості визначення лінійних розмірів об’єкта по його зображенню?

 








©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.