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

C++

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

Как найти ширину фигуры (OPENCV)? - C++

08.12.2015, 11:04. Просмотров 429. Ответов 5
Метки нет (Все метки)

Доброго времени суток. у меня есть код с помощью которого я нахожу контур объекта и его ширину с высотой:


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
29
for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        cvtColor(frame, edges, COLOR_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 50, 3);
 
        vector<vector<Point> > contours;
        findContours(edges, contours, RETR_LIST, CHAIN_APPROX_SIMPLE);
 
        for( size_t i = 0; i < contours.size(); i++ )
        {
            Rect minRect = boundingRect(contours[i]);
 
            if(minRect.width > 50 & minRect.height > 50 )
            {
            rectangle(frame,minRect,Scalar(0,0,255));
            putText(frame,format("width = %d , height = %d",minRect.width,minRect.height), Point(minRect.x,minRect.y),
                    FONT_HERSHEY_PLAIN, 1, Scalar(0,255,0));
            }
 
        }
        imshow("edges", frame);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}
Но это работает только на простых фигурах : Как найти ширину фигуры (OPENCV)?
я же хочу найти ширину следующих обьектов Как найти ширину фигуры (OPENCV)? Как найти ширину фигуры (OPENCV)?

этот код находит конту, но всего обьекта Как найти ширину фигуры (OPENCV)?

Есть у кого нибудь идеи или решение как его можно переделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2015, 11:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как найти ширину фигуры (OPENCV)? (C++):

Как распознать молнию на картинке используя компьютерное зрения (OpenCV или альтернативы) - C++
Всем привет. Передо мной стоит задача - произвольную фотографию проверить на наличие изображения молнии. С чего начать? Молния на...

Как установить библиотеку OpenCV в C++ Builder - C++ Builder
народ киньте силку на библиотеку с OpenCV для c++ builder не магу найти.

Объясните пожалуйста, как подключить библиотеку OpenCV к CodeGear C++ Builder 2007 - C++ Builder
Объясните новичку пожалуйста.

TPageControl - Как изменить ширину вкладок - C++ Builder
Как изменить ширину вкладок??? Как сделать чтобы например три вкладки были одинаковой ширины и полностью заняли всю длину панели??

Как задать начальную ширину графика? - C++ Builder
Блин, не найду нигде. В свойствах всё перерыл. Надо чтоб при открытии графика горизонтальная линейка сразу стала 0-1000, а не...

Найти площадь фигуры, ограниченной кривой линией - C++ Builder
найти площадь фигуры ограниченной кривой - x*x * sin(x + 2) * exp(x*x); x y заранее спасибо

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
08.12.2015, 11:34 #2
а что это за линии по краям, которые не считаются объектом?
и почему их нет на изображении с квадратом?
0
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
08.12.2015, 11:46  [ТС] #3
Квадрат был примером простой Фигуры, и отличным пример для кода)))
целью же является найти ширину если есть вот такие линии, назовем их помехами)
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.12.2015, 00:45 #4
Могу предложить:
Находишь линии с помощью преобразования Хафа - 1)
Отбрасываешь из рассмотрения те у которых минимальный и максимальный Х - 2)
http://snag.gy/qH5aX.jpg
1
MValeriy
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 28
16.12.2015, 15:08  [ТС] #5
Спасибо за совет,
Не подскажешь , на примере кода, как найти из множества точек, точку с наибольшем и наименьшим x (y не имеет значения)
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.12.2015, 10:38 #6
C++
1
2
3
4
5
CvPoint pmix(10000,10000) pmax(0,0);
for (int i=0; i<n; i++) {
if (pts[i].x < pmin.x) pmin = pts[i];
if (pts[i].x > pmax.x) pmax = pts[i];
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2015, 10:38
Привет! Вот еще темы с ответами:

Как изменить ширину одного таба в TPageControl/TsPageControl - C++ Builder
собстевенно вот и весь вопрос. Везде искал - не нашел. TabWidth не подходит, так как меняет ширину всех табов, а нужно только одного. ...

Как зафиксировать ширину программы без возможности ее расширения? - C++ Builder
Здравствуйте! Извините за глупый вопрос, но все же, пытался в форме редактировать Weight и Height, но при компиляции все равно можно...

Как узнать ширину текста в пикселях на определённой панели в StatusBar - C++ Builder
Здравствуйте! Помогите разобраться по такому вопросу. Ребята нужно сделать хинт на статусбаре когда ширина текста панели...

Как найти объект на изображении (openCV)? - Алгоритмы
Добрый день всем. возможно ли найти объект на изображение который находится ближе всего с помощью openCV. предварительно можно узнать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.12.2015, 10:38
Ответ Создать тему
Опции темы

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