在图像处理中,常常需要通过去除图像的背景来获得图像中的人或者其他一些物体等前景对象。
传统的算法是先拍一张背景图像,然后将之后拍摄到的图像减去这张背景图像再做一些滤波处理以取得前景对象。这种方法的好处是简单,但简单之余,一旦背景发生了变化,变化的部分就会被识别为前景,以致算法失效,因此背景一有变动则需重新拍摄背景图像,非常麻烦。
混合高斯模型去除背景法则没有这个问题,其在加入的图像中不断学习,分离出前景和背景,并不断的改善背景模型,因此能比较好的对背景和前景进行分离。这套算法OpenCV已经实现了,下面贴出代码,后面如本人自行实现,会再贴出详细的分析。
#include <opencv2/opencv.hpp>
using namespace cv;
void main()
{
cv::Mat frame;
cv::Mat back;
cv::Mat fore;
cv::Ptr<BackgroundSubtractorMOG2> bg = createBackgroundSubtractorMOG2();//第一个参数为参考历史帧数
char path[

图像处理中,为获取前景对象通常需要去除背景。传统的减背景法简单但易受背景变化影响。混合高斯模型能动态学习并分离前景与背景,OpenCV已实现此算法,代码将在后续分享。
订阅专栏 解锁全文
663

被折叠的 条评论
为什么被折叠?



