Обнаружение объектов OpenCV - центральная точка

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
33
задан Adaline Simonian 13 August 2017 в 08:16
поделиться

3 ответа

Уже существует пример того, как сделать прямоугольное обнаружение в OpenCV (взгляд в samples/squares.c), и это довольно просто на самом деле.

Вот грубый алгоритм, который они используют:

0. rectangles <- {}
1. image <- load image
2. for every channel:
2.1  image_canny <- apply canny edge detector to this channel
2.2  for threshold in bunch_of_increasing_thresholds:
2.2.1   image_thresholds[threshold] <- apply threshold to this channel
2.3  for each contour found in {image_canny} U image_thresholds:
2.3.1   Approximate contour with polygons
2.3.2   if the approximation has four corners and the angles are close to 90 degrees.
2.3.2.1    rectangles <- rectangles U {contour}

Не точная транслитерация того, что они делают, но это должно помочь Вам.

26
ответ дан 27 November 2019 в 18:39
поделиться

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

0
ответ дан 27 November 2019 в 18:39
поделиться

OpenCV имеет "кучу" функций, которые могут помочь Вам достигнуть этого. Загрузите Emgu. CV для C#.NET, перенесенного к библиотеке, если Вы программируете на том языке.

Некоторые методы получения, что Вы хотите:

  1. Находят углы как прежде - например, функция "CornerHarris" OpenCV

  2. Порог изображение и вычисляют, центр тяжести - видят http://www.roborealm.com/help/Center%20of%20Gravity.php ... это - метод, который я использовал бы. Можно даже выполнить пороговую обработку в стандартной программе COG. т.е. cog_x + = *imagePtr < 128? 255: 0;

  3. Находят, что моменты изображения дают вращение, центр тяжести и т.д. - например, "Моменты" функция OpenCV. (Я не использовал это)

  4. (редактирование), библиотека AForge.NET имеет угловые функции обнаружения, а также проект в качестве примера (MotionDetector) и библиотеки для соединения с веб-камерами. Я думаю, что это было бы самым легким способом пойти, предположив использование Windows и.NET.

4
ответ дан 27 November 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: