0

我想实现测量对象的大小(如最后附加的图像),还需要使用 OpenCV 框架在 iOS 应用程序中计算对象的高度和宽度。

成功集成 CvVideoCamera 并能够启动视频

现在问题出现在“processImage”方法中。

我试过的:

- (void)processImage:(cv::Mat &)image;
{
    Mat gray;
    cvtColor(image, gray, CV_BGRA2GRAY);
    cv::GaussianBlur(gray, gray, cvSize(7, 7), 0);
    cv::Canny(gray, gray, 50, 100);
    cv::dilate(gray, gray, cv::getStructuringElement(cv::MORPH_RECT, cvSize(2, 2)));

    std::vector<std::vector<cv::Point > > contours;
    cv::findContours(gray, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);

    for (unsigned int i = 0; i < contours.size(); ++i)
    {
        cv::RotatedRect rect = cv::minAreaRect(contours[i]);
        cv::Point2f points[4];
        rect.points(points);

        std::vector<cv::Point> boundingContour;

        for (unsigned int j = 0; j < 4; ++j)
            boundingContour.push_back(points[j]);

        std::vector<std::vector<cv::Point>> boxContours;
        boxContours.push_back(boundingContour);

        cv::drawContours(image, boxContours, 0, cvScalar(0, 255, 0), 2);
    }

}

结果:

在此处输入图像描述

需要达到的目标:(已编辑)

正如 GPPK 在评论用 C++测量对象中提到的链接。

老实说,我不知道 c++,但我尽我所能,但在不深入了解的情况下努力前进。如果有人可以提供帮助,那将是非常可观的。在此先感谢。

4

0 回答 0