我想达到测量物体的尺寸(如最后附加的图像),还需要计算高度和数量。 iOS应用程序中使用OpenCV框架的对象宽度。
成功整合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 ++中提到评论Measuring Objects中的链接。
老实说,我不知道c ++,但我尽我所能,但在不深入了解的情况下努力向前迈进。如果有人可以提供帮助,那将会非常值得感谢。提前谢谢。