我想生成轮廓的直方图。我在openCv中使用C ++。到目前为止我已经能够找到轮廓,但是我还没有能够生成直方图,只是为了突出这些轮廓是不规则的物体。我正在尝试这样做以跟踪多个对象并在遮挡后识别它们。
代码段:
cv::Mat frameSubtracao, frameSubtracao_gray;
cv::cvtColor(frameSubtracao.clone(), frameSubtracao_gray, CV_BGR2GRAY );
cv::findContours(frameSubtracao_gray.clone(), contours, hierarchy,
CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE );
答案 0 :(得分:0)
Opencv可以为您计算历史记录:https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html。
此外,它可以根据直方图对您认为合适的值进行阈值处理: https://docs.opencv.org/2.4/doc/tutorials/imgproc/threshold/threshold.html
答案 1 :(得分:0)
那个轮廓是二进制图像吗? (例如,你从canny()函数生成的)如果是这样的话:
你可以对轮廓和图像做 bitwise_and(),然后生成它的直方图。