Попробуйте вместо этого следующее.
std::vector<cv::Point2f> points;
cv::Mat pointmat(points);
cv::Mat tempmat = Mat(mat.rows,mat.cols, cv::CV_32FC1);
goodFeaturesToTrack(mat,pointmat, tempmat,10, 0.01, 10, Mat(), 3, 0, 0.04);
goodFeaturesToTrack принимает дополнительный аргумент tempimage согласно документации . Его первые 3 аргумента имеют тип CvArr, которого нет у std::vector<cv::Point2f>
, следовательно, разница в сообщении об ошибке итераторов std::vector
.