作为一个起点,如果无论如何使用 C++ (就像你使用cv::Mat
and cv::cvtColor
建议),那么为什么其余部分也不使用 C++ 接口呢?
这意味着使用cv::goodFeaturesToTrack http://docs.opencv.org/modules/imgproc/doc/feature_detection.html#void%20goodFeaturesToTrack%28InputArray%20image,%20OutputArray%20corners,%20int%20maxCorners,%20double%20qualityLevel,%20double%20minDistance,%20InputArray%20mask,%20int%20blockSize,%20bool%20useHarrisDetector,%20double%20k%29 or a cv::GoodFeaturesToTrackDetector http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html#goodfeaturestotrackdetector,这是为了工作cv::Mat
和朋友们,而不是进行不必要的演员阵容cv::Mat
to IplImage*
.
cv::Mat grayFrame;
std::vector<cv::Point2f> corners;
double quality_level = 0.1;
double min_distance = 10;
int eig_block_size = 3;
int use_harris = false;
const int MAX_CORNERS = 10;
cv::cvtColor(CurrFrame, grayFrame, CV_BGR2GRAY);
cv::goodFeaturesToTrack(grayFrame,
corners,
MAX_CORNERS,
quality_level,
min_distance,
cv::noArray(),
eig_block_size,
use_harris);