Определение центра объекта

Обсуждение вопросов, связанных с обработкой аудио и видео информации

Определение центра объекта

Postby AN-G on 22 Mar 2014, 23:55

Всем доброго времени суток! Уважаемые форумчане сам я новичек в освоении LabView, поэтому вставшая передо мной задача загнала меня в тупик.Обратился к Вам по той причине , что еще не изучил LabView должным образом.Суть задачи: Берем изображение с произвольной геометрической фигурой (необязательно правильной формы)формата JPG и т.п.Нужно вычислить центр этой фигуры, соответственно установить на него маркер. Затем нужно повернуть данное изображение на произвольный угол и чтобы центр этой фигуры остался там же где и был обозначен вначале.Т.е как мне видится нужно вычислить центр масс данного геометрического тела.Может кто-то делал, что-то подобное или подскажет в каком направлении "копать". Сам вижу следующее решение данной задачи:1)нужно выделить контур объекта(есть такая функция и проблем не вызывает),2)Взять точки контура и применить к нему "Правило моментов"(а вот здесь у меня тупик с алгоритмом решения ),3) Установить маркер-это и будет центром масс.Может у кого-то будет другой алгоритм решения данной задачи?!Заранее благодарен за помощь.
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby Jakob Brontfeyn on 23 Mar 2014, 11:14

Primer
Attachments
kontur.vi
(447.24 KiB) Downloaded 268 times
User avatar
Jakob Brontfeyn
expert
expert
 
Posts: 1704
Joined: 28 Feb 2008, 11:01
Medals: 6
Activity (1) Gold (1) Silver (2) Black (2)
Karma: 237
VIP

Re: Определение центра объекта

Postby AN-G on 23 Mar 2014, 12:24

Спасибо за хороший образец...буду разбираться со своей задачей дальше применяя Ваш пример. У меня вся загвоздка в том , что фигурой может быть и треугольник и квадрат и тетрайдер. Видится мне, что нужно изображение пройти по строкам и столбцам для начала.Затем записать данные в массив и каким-то образом отделить область внутри контура фигуры, а затем применяя "правило моментов"(я так понимаю какая-то мат.функция должна присутствовать в наборе функций) определить цент масс.
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AN-G on 23 Mar 2014, 12:38

Сейчас стал разбираться более подробно с Вашим примером и оказалось, что для треугольника, квадрата и т.п центр определяется неправильно
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AndreyDmitriev on 23 Mar 2014, 13:38

AN-G wrote:Сейчас стал разбираться более подробно с Вашим примером и оказалось, что для треугольника, квадрата и т.п центр определяется неправильно


На будущее - вы когда пишете что что-то "работает неправильно", то вообще говоря должны описать три части:
- что вы сделали
- какой результат получили
- какой результат ожидаете получить

В общем случае по двумерной картинке я б как-то так считал:
23-03-2014 11-09-00.png
23-03-2014 11-09-00.png (4.64 KiB) Viewed 10139 times


Здесь будет учитываться не только контур, но и яркость объекта.
В частном случае бинарных объектов эта конструкция сводится к вышеприведённому примеру Якова Иосифовича со средними значениями.

Пример прилагаецца.
Attachments
Centroid.vi
(23.86 KiB) Downloaded 202 times
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Определение центра объекта

Postby dadreamer on 23 Mar 2014, 18:45

AN-G wrote:нужно вычислить центр масс данного геометрического тела.

В пакете NI Vision есть замечательный :vi: IMAQ Particle Analysis VI, выдающий разные геометрические параметры объектов в бинарном изображении. Так вот, там есть и центр масс, и разные моменты инерции, и ещё много чего другого. Можно также использовать более простой IMAQ Particle Analysis Report VI, на выходе тоже будет центр масс. Пример к этому :vi: лежит в LabVIEW\examples\Vision\2. Functions\Binary Analysis\Particle Analysis Report Example.vi (при установке пакета).
User avatar
dadreamer
professor
professor
 
Posts: 3286
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 834
I/O VIP vision internet

Re: Определение центра объекта

Postby AN-G on 23 Mar 2014, 22:02

Пока получилось только это и то с ошибкой (см.вложение) и я не пойму как найти описание по коду ошибки, если таковое есть вообще...dadreamer спасибо за совет эти функции я посмотрел, но они именно для бинарного кода...получается, что после определения центра масс объекта нужно кодировать изображение обратно и на указанной точке центра масс установить маркер(это был бы не плохой вариант кстати и более простой)???
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AN-G on 23 Mar 2014, 22:07

AndreyDmitriev благодарю за науку...впредь постараюсь исправиться :wink: . По сути у меня ничего не получилось, а хотелось бы получить программу вычисления центра объекта. Кстати во вложенном файле не выводится во всплывающих окнах маркер функции Centroid. Может кто=то объяснит, что я не так делаю.
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AndreyDmitriev on 24 Mar 2014, 16:34

AN-G wrote:AndreyDmitriev благодарю за науку...впредь постараюсь исправиться :wink: . По сути у меня ничего не получилось, а хотелось бы получить программу вычисления центра объекта. Кстати во вложенном файле не выводится во всплывающих окнах маркер функции Centroid. Может кто=то объяснит, что я не так делаю.


Для того, чтобы что-то вывести во всплывающих окнал - используйте функции из палитры Overlay (IMAQ Overlay Point / Line и т.д.). Кроме того, у вас у обоих окон одинаковый номер 1 - если надо два окна, номера должны быть различные (можно до 15 окон открыть)
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Определение центра объекта

Postby dadreamer on 24 Mar 2014, 16:55

AN-G wrote:dadreamer спасибо за совет эти функции я посмотрел, но они именно для бинарного кода...получается, что после определения центра масс объекта нужно кодировать изображение обратно и на указанной точке центра масс установить маркер(это был бы не плохой вариант кстати и более простой)???

У вас картинки в архиве имеют яркость двух уровней: 0 и 255. Можно считать такую картинку бинарной, так как отрезок 0...1 растянут на 8-битную палитру 0...255. И инструменты IMAQ Particle Analysis VI и IMAQ Particle Analysis Report VI нормально работают с такими картинками, как впрочем и все остальные :vi: из пакета Vision (если картинка задана как Grayscale (U8)).

Если решать вашу задачу сходу, то можно сделать как-нибудь так:
Без имени-2.jpg
Без имени-2.jpg (66.12 KiB) Viewed 10057 times
Без имени-3.jpg
Без имени-3.jpg (128.88 KiB) Viewed 10057 times

Но я бы фильтранул изображение и/или выкинул мелкие точки, чтобы они не мешали при работе (IMAQ GrayMorphology и IMAQ RemoveParticle). А можно взять только объект с максимальной площадью и для него вывести маркёр в центре масс:
Без имени-4.jpg
Без имени-4.jpg (83.26 KiB) Viewed 10057 times

Без имени-5.jpg
Без имени-5.jpg (111.12 KiB) Viewed 10057 times


я не пойму как найти описание по коду ошибки, если таковое есть вообще

ПКМ на коде ошибки в кластере error in/out -> Explain Error. Конкретно у вас пишет:
Error -1074396154 occurred at IMAQ Inspection
Possible reason(s):
IMAQ Vision: The image is not large enough for the operation.

Неверно выполняете копирование картинки, надо создать ещё одну область в памяти с новым именем, и её использовать в качестве Dst в IMAQ Copy, а источником будет первая картинка, которая из файла грузится.
User avatar
dadreamer
professor
professor
 
Posts: 3286
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 834
I/O VIP vision internet

Re: Определение центра объекта

Postby AN-G on 24 Mar 2014, 21:16

Всем спасибо за ответы...С бинарной картинкой разобрались, а вот если у нас будет изображение разноцветное(ну например Российский триколор)???В конечном итоге хочется сделать программу слежения за объектом(естественно видеослежение), поэтому и решил начать с малого.
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AndreyDmitriev on 25 Mar 2014, 00:47

Возьмите для начала просто яркостную компоненту.
Для программы слежения одним центром масс не обойдётесь, ну разве что у вас синтетический учебный пример, где объект по белому листу бумаги перемещается.
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Определение центра объекта

Postby AN-G on 25 Mar 2014, 18:04

Ребята, может кто подскажет как возможно повернуть изображение(функция , либо алгоритм).Нужно, чтобы во вложенном примере было повернуто изображение"Finish".
Attachments
PointsContour(Mass Centr).rar
(59.13 KiB) Downloaded 165 times
AN-G
beginner
beginner
 
Posts: 11
Joined: 22 Mar 2014, 23:22
LabVIEW Version: 2011
Karma: 0

Re: Определение центра объекта

Postby AndreyDmitriev on 25 Mar 2014, 18:19

AN-G wrote:Ребята, может кто подскажет как возможно повернуть изображение(функция , либо алгоритм).Нужно, чтобы во вложенном примере было повернуто изображение"Finish".


IMAQ Rotate?
User avatar
AndreyDmitriev
VIP
VIP
 
Posts: 1225
Joined: 03 Feb 2010, 00:42
Location: Германия
Medals: 6
Activity (1) Professionalism (1) Tutorials (1) Gold (1) Black (2)
LabVIEW Version: 6.1 - 2016
Karma: 433

Re: Определение центра объекта

Postby dadreamer on 25 Mar 2014, 18:36

А если нужно заполнить картинку прямоугольным изображением, то можно использовать IMAQ Extract Tetragon. Бывает удобно, когда исходное изображение наклонено, и требуется получить восстановленный фрагмент.
User avatar
dadreamer
professor
professor
 
Posts: 3286
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 834
I/O VIP vision internet

Next

Return to Работа с графикой и звуком

Who is online

Users browsing this forum: No registered users and 1 guest

cron