Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
#1

Работа с OpenCV, нахождение параметров обьектов - C++

15.10.2015, 11:42. Просмотров 1084. Ответов 19
Метки нет (Все метки)

Здравствуйте,
Мне нужно сделать один проект по учебе, речь идет о програмированнии одной программки.
Задача следующая: в распоряжении у меня индустриальная камера и лазер, нужно 'сделать', прибор для измерения параметров обьекта(Ширина, углубления и выпуклости). К сожалению я начинающий програмист, и впервый раз столкнулся с библиотеками OPENCV, но думаю это подходит как ни что лучше.
Из уже мною изучинного и прочитанного, я написал простую программку для отображения видео с камеры и нахождения краев обьекта,к сожалению до лазера я еще не дошел, не знаю как выйти на него, и как его подключить. Был бы очень признателен за совет
Мой главный вопрос заключается в том, как измерить расстояние от края до края с и вывести данные на экран, и сохранить в каком нибудь файле. Спасибо за ИДЕИ и дополнения в программку


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "opencv2/opencv.hpp"
 
using namespace cv;
 
int main()
{
    int c;
    Mat img;
    VideoCapture cap(0);
    while (true)
    {
        cap >> img;
 
        Mat edges;
        cvtColor(img, edges, CV_BGR2GRAY);
 
        Canny(edges, edges, 30, 60);
        imshow("Grau", edges); //края
        imshow("Norm", img); //обычное видео с камеры
        c=waitKey(1);
 
         if(c==27) // ESC закрыть окно
         break;
    }
          
 
    return 0;
}
Добавлено через 6 минут
Также вычитал про функцию ROI (Region Of Interest — регион интересов — интересующая область изображения), что бы к примеру выделить только ту область где лазер попадает на обьект и уже дальше работать только с жтим участком. Не уверен только что это пойдет для работы с видеокамерой

Добавлено через 8 минут
стоит уточнить, что обьект должен по всей длинне быть имерин, тоесть проверяется ширина, толщина, выпуклости на всем участке. Тоесть в качестве обьекта будет использован кусок пенопласта с обределенной геометрией, который будет расположен перед ккамерой и двигаться в определенном направлении, как по транспортной ленте

Добавлено через 57 минут
работаю с VS2010 и библиотеками OPENCV231. немного устарелые но так уж получилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 11:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с OpenCV, нахождение параметров обьектов (C++):

Изменение параметров изображения в зависимости от положения ползунка (Opencv) - C++
Помогите пожалуйста написать класс, который будет изменять яркость, насыщенность и цветовую гамму изображения в зависимости от положения...

Файлы параметров не найдены в этом проекте.Добавьте фалй параметров и повторите попытку - Visual C++
хочу установить параметры приложения (applicationsettings) для формы, а именно: хочу сделать так, чтобы при наведении курсор default...

Opencv cvFindContours - нахождение контуров и сортировка по горизонтали - C++
Он находит контуры и сортирует их по вертикали по-умолчанию. Как сделать, чтобы сортировал по горизонтали. Писал костыль, используя...

Работа с библиотеками openCV - C++
Пытаюсь запустить код по распознаванию лиц, использующий библиотеки opencv. Все библиотеки были установлены в согласии с разными...

OpenCV для Visual Studio C++ работа с изображениями - C++
Здравствуйте, товарищи программисты. необходимо выполнить задание по встраиванию в картинку информации. раньше приходилось работать на...

Работа функции с переменным числом параметров - C++
Добрый вечер! Есть функция создающая квадратную матрицу, по числу параметров и самим элементам. Опущу все проверки и другое, не важное...

19
Почтальон
Модератор
397 / 324 / 59
Регистрация: 22.03.2015
Сообщений: 2,558
Завершенные тесты: 1
15.10.2015, 19:21 #2
Цитата Сообщение от MValeriy Посмотреть сообщение
К сожалению я начинающий програмист
Даже начинающий программист не допускает ошибок в названии своей профессии.
Цитата Сообщение от MValeriy Посмотреть сообщение
к сожалению до лазера я еще не дошел, не знаю как выйти на него, и как его подключить. Был бы очень признателен за совет
Мой главный вопрос заключается в том, как измерить расстояние от края до края с и вывести данные на экран, и сохранить в каком нибудь файле.
Для этого нужно иметь документацию по оборудованию, чтобы хоть с чего-то начать. Есть она у вас ?
По поводу вычисления размеров. Раз учились в школе, тогда должны знать, как вычислить расстояние, зная время и скорость.
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
16.10.2015, 09:15  [ТС] #3
Цитата Сообщение от Почтальон Посмотреть сообщение
Даже начинающий программист не допускает ошибок в названии своей профессии.
) к сожалению или к счастью, програММирование не является моей профессией, по роду деятельности, точнее сказать по необходимости столкнулся.
Сожалею если обидел или оскорбил когото этой ошибкой

Добавлено через 13 часов 10 минут
Цитата Сообщение от Почтальон Посмотреть сообщение
Для этого нужно иметь документацию по оборудованию, чтобы хоть с чего-то начать. Есть она у вас ?
Камера Dragonfly2 модель DR2-08S2M-EX-CS :
http://ptgrey.com/dragonfly2-08-mp-m...ad-sony-icx204
Расстояние между камерой и лазером приблизительно 205mm, до обьекта 252mm(может еще незначительно измениться). Угол триангулиции 39-40 градусов.

Добавлено через 6 минут
Цитата Сообщение от Почтальон Посмотреть сообщение
По поводу вычисления размеров. Раз учились в школе, тогда должны знать, как вычислить расстояние, зная время и скорость.
длинна как таковая , не является самым важным обьектом исследования, хотя тоже не исключена. Важнее всего ширина обьекта и измерение поверхности, выпуклости, вогнутости.
в школе много чему учили, и даже тем как пользоваться линейкой) но как с помощью камеры вычислить (расчитать ) а еще и запрограммировать, увы нет. Поэтому и обращаюсь к Вам, в надежде на хоть какую то помощь

Добавлено через 20 минут
Забыл указать что Расстояние от Камеры до Обьекта где то между 320mm 370mm (точнее могу сказать лишь когда камера с лазером будут закреплены).
0
Почтальон
Модератор
397 / 324 / 59
Регистрация: 22.03.2015
Сообщений: 2,558
Завершенные тесты: 1
16.10.2015, 10:52 #4
Лазер пускает световые пучки с определенной скоростью (постоянной). Вот нужно вычислить время когда сигнал вернется обратно и отсюда уже вычислять расстояние. Это принцип действия эхолота
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
16.10.2015, 15:50  [ТС] #5
Цитата Сообщение от Почтальон Посмотреть сообщение
Лазер пускает световые пучки с определенной скоростью (постоянной). Вот нужно вычислить время когда сигнал вернется обратно и отсюда уже вычислять расстояние. Это принцип действия эхолота
Спасибо Вам конечно за советы, но так я далеко не уйду. тем более вы по всей видимости не правильно поняли цели этой работы. мне не нужно изобретать эхолот или лазерный дальнометр.
Работа основывается на Методе триангуляции, именно поэтому лазер и камера. Лазер вообще используется в качестве указателя.
Меня интересует вопрос программирования!
с помощью функции "Canny(edges, edges, 10, 100);" я получаю давольно таки хорошее изображение, особенно если оно подсвечивается лазером, убрать все ШУМы, и каким либо образом определив координаты краев(они отчетливо видны,) возможно можно было бы расчитать ширину. увы пока я не знаю как реализовать это
0
Почтальон
Модератор
397 / 324 / 59
Регистрация: 22.03.2015
Сообщений: 2,558
Завершенные тесты: 1
17.10.2015, 10:34 #6
Возможно нужно алгоритмы распознавания изображения использовать. Иначе как определить выпуклую поверхность? Игра света порой творит чудеса, и можно накосячить
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
21.10.2015, 13:38  [ТС] #7
Друзья, задача немного упростилась, но легче увы от этого не стало. Во первых есть вся необходимая геометрия(я надеюсь что вся), тоесть камера, обьектив, растояние от камеры до лазера, расстояние от лазера до поверхности и соответственно от камеры до поверхности.
Задача упростилась до нахождения ширины обьекта, и сравнения этих величин с Заданными. При откланениях выводить на экран, и проверять дальше.
Но теперь обьект движется, тоесть скажем лента с определенной толщиной и длинной Х метров.
С помощью вышеупомянотого, я довольно хорошо нахожу границы обьекта, особенно это хорошо заметно при включенном лазере(см Картинку) Подскажите как найти ширину? в частности не знаю как это написать в С++. Погрешность измерения пока особой роли не играет.
Помогите кто чем может)
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
21.10.2015, 13:48  [ТС] #8
Работа с OpenCV, нахождение параметров обьектов
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
21.10.2015, 13:54  [ТС] #9
"быть может я ошибаюсь с детектором границ ''Canny''?"
с именно с такой мыслью я просидел почти неделю , насмотрелся и начитался всяких туториумов, и добавил оператора лапласса и построение Гистограммы(см Картинку). Смотрится хорошо, но я не на сколько не приблизился к своей цели
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
21.10.2015, 13:55  [ТС] #10
Работа с OpenCV, нахождение параметров обьектов
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
27.10.2015, 19:05 #11
объектом вы называете железную бляху по центру?
скиньте побольше тестовых изображений, надо глянуть на них
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
28.10.2015, 10:20  [ТС] #12
я с того времени немного переделал код, теперь я работаю только с определенным участком -там где линия лазера пересекает обьект(но лазер я пока отложил в сторону)
Обьектом может быть лубая под руку попавшаяся вещь(на фото кусок пластика, металический крепеж, Шахматная доска)
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
28.10.2015, 10:21  [ТС] #13
Работа с OpenCV, нахождение параметров обьектов
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
28.10.2015, 10:22  [ТС] #14
конечно может быть и обьект с множеством линий, но я пока начал с простого)))
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
28.10.2015, 11:48 #15
ну, если с простого, то можно как вы и хотели, начать с поиска крайних линий на изображении
0
28.10.2015, 11:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2015, 11:48
Привет! Вот еще темы с ответами:

OpenCV нахождение похожего лица (двойника) - Python
Всем привет :) Посоветуйте пожалуйста как сделать алгоритм для сравнения двух лиц и вывода процента подобия при помощи OpenCV? :umnik:

Массивы обьектов типа TClientSocket и TServerSocket и работа с ними - Delphi
Привет. Я продолжаю писать свою огромную программу. Написал в глобальные переменые два массива типа TServerSocket и TClientSocket....

Функция распределения. Нахождение параметров А и В - Теория вероятностей
Здравствуйте. Помогите,пожалуйста, с задачей. Мне бы только найти параметры А и В и по возмоности объяснить. Дисперсию и матожидание я...

Нахождение параметров гамма-распределения - Теория вероятностей
Добрый вечер! Помогите мне, пожалуйста, вот с таким заданием: Найти методом моментов точечные оценки параметров \alpha и \beta...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru