Я пытаюсь классифицировать подключенный компонент в видео на основе его местоположения. Я использую функцию connectedComponentsWithStats из opencv 3. Я пытаюсь получить доступ к значениям из матрицы статистики, которая представляет собой матрицу 1×5. Когда я использую следующий код, я получаю доступ к области подключенного компонента успешно.
connectedComponentsWithStats(median_difference3, labels, stats, centroids, 8, CV_16U);
int area= stats.at<int>(0,4);
cout << area << endl;
Когда я пытаюсь получить доступ к первому значению матрицы, используя
int x= stats.at<int>(0,0);
Все значения, которые я получаю, равны нулю.
Просто для подтверждения, когда я вывожу полную статистическую матрицу, значения в позиции 0,0 матрицы не всегда равны нулю, поэтому они должны меняться так же, как матрица площади. Значения в матрице статистики также всегда целые.
Буду признателен за помощь, если вы видите, что я сделал неправильно!
Первая строка статистики относится к фону:
От доктор
statsv — вывод статистики для каждой метки, включая фоновую метку
Вы можете просто проверить количество строк stats
чтобы узнать, есть ли у вас какой-либо компонент переднего плана, или проверьте количество меток, возвращаемых connectedComponentsWithStats
,
Других решений пока нет …