Estoy tratando de usar cv::calcOpticalFlowPyrLK
pero a veces una afirmación interna en esa función falla. La afirmación es npoints = prevPtsMat.checkVector(2, CV_32F, true)) >= 0
. Estoy usando OpenCV 2.3.1. El código fuente para esta función está disponible here.cv :: goodFeaturesToTrack no devuelve ninguna característica
Es difícil entender mi código, especialmente debido a mi experiencia limitada con gráficos de computadora y su falta de comentarios. ¿Por qué se activa esta afirmación y qué dice acerca de mi problema?
Editar: I llamar a la función como sigue:
cv::calcOpticalFlowPyrLK(curBwFrame, prvFrame, features, newFeatures, trackingStatus, errors);
descubrí que el vector features
, que se obtuvo llamando cv::goodFeaturesToTrack(curBwFrame, features, 5, 0.2, 0.5, skinMask);
con una máscara no vacío que parece ser lo suficientemente grande y una imagen válida, no contiene ninguna característica. ¿Cómo puede pasar esto?
curBwFrame
skinMask
soy capaz de reproducir el problema utilizando el siguiente fragmento de código:
#include <vector>
#include <cassert>
#include <opencv2\opencv.hpp>
using std::vector;
using namespace cv;
int main() {
vector<Point2f> features;
cv::Mat curBwFrame = imread("curBwFrame.png");
cv::cvtColor(curBwFrame, curBwFrame, CV_RGB2GRAY);
imwrite("test.png", curBwFrame);
cv::Mat skinMask = imread("skinMask.png");
cv::cvtColor(skinMask, skinMask, CV_RGB2GRAY);
imwrite("test.png", skinMask);
cv::goodFeaturesToTrack(curBwFrame, features, 5, 0.2, 0.5, skinMask);
assert(features.size() > 0);
return 0;
}
las afirmaciones que los cheques argumento de entrada es un vector de puntos. Y es difícil responder a tu pregunta sin tu código. –
He agregado más información arriba, pero no estoy seguro de qué otra información podría ser relevante. Podría volcar algunos fragmentos de código grandes aquí, pero es probable que contengan mucha información irrelevante. – Pieter
Disculpa por haber mezclado algunas llamadas a funciones antes. ¡Agregué el fragmento correcto arriba! También puedo publicar la máscara y la imagen de origen de 'goodFeaturesToTrack' si es necesario. – Pieter