我想在iOS上使用Objective-C ++减去图像的背景,我正面临因内存问题而终止的问题,每当我想将BackgroundSubtractorMOG2方法应用于输入图片时。
我正在研究这个主题,但是我找不到任何有用的答案。我正确应用BackgroundSubtractorMOG2方法,传递正确的参数。我也检查了我的编辑方案中的诊断程序,我的僵尸对象被禁用,因此不应该导致问题。 我在想,手机的处理能力是否会成为问题。
我在我的函数中传递了一个背景图像和相同的背景图像。我想以某种方式从图像中减去这个人。
我的代码是:
// Subtracts two images: the image taken from the background image
-(cv::Mat) subtractBackground:(cv::Mat)backPic fromImage:(cv::Mat)inImage {
if (!inImage.data) {
NSLog(@"Unable to the picture image");
} else if (!backPic.data) {
NSLog(@"Unable to open background");
}
cv::Mat fgMaskMOG2;
int history = 2;
int distance_threshold = 16;
bool shadow_detection = true;
cv::Mat frame[2] = { backPic, inImage};
cv::Ptr<cv::BackgroundSubtractorMOG2> createSubtractor = new cv::BackgroundSubtractorMOG2(history, distance_threshold, shadow_detection);
for(int i = 0; i < 2; i++) {
createSubtractor->operator()(frame[i], fgMaskMOG2);
}
return fgMaskMOG2;
}