我想实现测量对象的大小(如最后附加的图像),还需要使用 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++,但我尽我所能,但在不深入了解的情况下努力前进。如果有人可以提供帮助,那将是非常可观的。在此先感谢。