WedX - журнал о программировании и компьютерных науках

Хотите нарисовать круг на изображении с помощью событий мыши (Opencv)

Я хочу нарисовать круг, используя события мыши в opencv.

То есть всякий раз, когда я нажимал левую кнопку и перетаскивал, это означает, что он должен рисовать круг в соответствии с положением мыши x и y. Я пробовал его для прямоугольника, он работает отлично. Но я не знаю, как рисовать круг ..Пожалуйста, помогите мне кто-нибудь.

25.07.2013

Ответы:


1

вы можете использовать следующую функцию, чтобы установить обратный вызов для окна

SetMouseCallback

документация здесь:

https://docs.opencv.org/modules/highgui/doc/user_interface.html

для кругов вы можете использовать функцию:

circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)

документация здесь:

https://opencv.willowgarage.com/documentation/cpp/drawing_functions.html

25.07.2013
  • да, для рисования прямоугольника, я использовал это и знаю, что для использования мыши нам нужно вызвать функцию SetMouseCallback... Но после этого, как действовать. Я не знаю, как использовать радиус круга и центр с помощью функции SetMouseCallback.. В этом только я был поражен... Пожалуйста, помогите мне.... 29.07.2013
  • Сначала вам нужно изображение, на котором вы хотите нарисовать круг. Это рекурсивная операция, поэтому вам понадобится цикл while, чтобы перерисовать изображение или просто перерисовать его в функции обратного вызова. Самый простой способ — определить объект img глобально, как здесь: code.opencv.org/projects/opencv/repository/revisions/master/. Вы можете передать изображение с пустой точкой вашего обратного вызова. В вашем обратном вызове вы можете легко написать cv::circle(img,cv::Point point(x, y),10,cv::Scalar(255, 0, 255));imshow(Window,img); 30.07.2013
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]