我想要做的背景减在一个视频文件使用该版本的方法。现在,我能够做到的背景减,但问题是,我无法得到输出色模式。所有的输出减去背景后来在灰色模式 :(.我想获得信息的颜色来的前景得到的输出后背景下得到减去。

我可以做它使用掩蔽技术??如以下的程序,我在思考。

  1. 捕获输入-- InputFrame (RGB)
  2. 过程 InputFrame
  3. 减的背景下,商店的前景 TempFrame (这是未来在灰阶 :( )
  4. 创建一个掩模使用 TempFrame
  5. 应用创建了面罩的 InputFrame
  6. 获得前景色 OutFrame

我击中了做掩蔽使用该版本的.我只是一个非常初学者在开源.请帮助我克服了这一点。

在此先感谢。

有帮助吗?

解决方案

好吧,我不明白怎么TempFrame(你的前景)可能是灰度如果您使用的背景减。你必须使用一个非常特别的算法。但假设TempFrame是灰度,那么你会做这样的:

cv::Mat mask = tempFrame > 0.5;

cv::Mat outFrame;
capturedFrame.copyTo(outFrame, mask);

这是该版本2.0的代码以上。数0.5是一个阈值,则需要设置为一些适当的。如果你不使用浮点图像,你可能会设置为128或者类似的东西。这是同样的事情在该版本1.1码:

CvMat* mask = cvCreateMat(tempFrame.rows, tempFrame.cols, CV_8UC1);
cvCmpS(tempFrame, 0.5, mask);

CvMat* outFrame = cvCreateMat(capturedFrame.rows, capturedFrames.cols, CV_32FC3);
cvCopy(capturedFrame, outFrame, mask);

其他提示

http://vimeo.com/27477093

代码是在这里

http://code.google.com/p/derin-deli-mavi/downloads/detail?name=denemeOpenCv23.zip&can=2&q=

到达一个前景色 只是复制的图像的使用前景罩

//图像。copyTo(前景,前景);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top