Рисование круга в матрице в openCV - PullRequest
0 голосов
/ 04 апреля 2020

Я слежу за изучением книги opencv

(https://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134, а затем ссылка на книгу https://pdfs.semanticscholar.org/9a67/4d82cd4f47477e3f1aa7b89a3d9f6e3894b8.pdf?_ga=2.62513452.1463426740.1585949302-836919348.1585949302)

Я работаю через упражнение;

"Это упражнение приучит вас к мысли о множестве функций, принимающих типы матриц. Создайте двумерную матрицу с тремя каналами байтов типа с размером данных 100 на 100. Установите все значения до 0.

a. Нарисуйте круг в матрице, используя void cvCircle( CvArr* img, CvPoint center, intradius, CvScalar color, int thickness=1, int line_type=8, int shift=0 ).

b. Отобразите это изображение, используя методы, описанные в главе 2. "

#include <opencv2/core/core.hpp>
#include <iostream>

int main () {

  CvPoint Center = cvPoint(50,50);

  CvMat mat = cvMat(
             100,
             100,
             CV_8UC3,             
);
  CvCircle Circle = cvCircle( //I have also tried just "void cvCircle()"
        &mat,  
        Center,
        50
        );
  return 0;
}

У меня нет проблемы с частью b проблемы, это в основном часть a. Также часть моей проблемы также может быть связана с c ++. В описании cvMat четвертый аргумент указан как void* data = NULL, что, как я предполагаю, означает, что он очищает все записи в матрице для установки его значений. Если это так, я не знаю, как установить значения на 0.

Где я объявляю Center Я пытаюсь установить начало круга в центре матрицы, хотя я не уверен как сказать cvCircle как. Я написал 50,50 в надежде, что, поскольку вы вначале сообщаете функции, что она работает с mat, она будет знать, что это центр матрицы, но это был полный выстрел в темноте.

Я получаю сообщения об ошибках типа "CvCircle не был объявлен в этой области" или "переменная или поле cvCircle объявлено void" при использовании void. Это могут быть проблемы с компиляцией, или я не включаю правильные заголовочные файлы (в которых я сомневаюсь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...