我正在开发一个应用程序来识别来自真实世界对象的对象。是否可以识别摄像机中的任何物体?现在,我正在使用openCV库来识别对象。但只是录制视频它没有做任何事情。关于AR,我很穷。如果可能的话,请建议我为识别真实世界物体必须做些什么。
答案 0 :(得分:0)
第1步:按照this设置您的opencv相机
第2步:将此代码添加到processImage委托
- (void)processImage:(cv::Mat&)image
{
//process here
cv::cvtColor(image, img, cv::COLOR_BGRA2RGB);
int fixedWidth = 270;
cv::resize(img, img, cv::Size(fixedWidth,(int)((fixedWidth*1.0f)* (image.rows/(image.cols*1.0f)))),cv::INTER_NEAREST);
//update the model
bg_model->apply(img, fgmask, update_bg_model ? -1 : 0);
GaussianBlur(fgmask, fgmask, cv::Size(7, 7), 2.5, 2.5);
threshold(fgmask, fgmask, 10, 255, cv::THRESH_BINARY);
image = cv::Scalar::all(0);
img.copyTo(image, fgmask);
}
您需要将以下内容声明为全局变量
cv::Mat img, fgmask;
cv::Ptr<cv::BackgroundSubtractor> bg_model;
bool update_bg_model;
其中,img&lt; - 较小的图像fgmask&lt; - 掩码表示发生运动的地方update_bg_model&lt; - 如果你想修复你的背景;
有关详细信息,请查看此link