matlab 背景建模,背景建模-均值法(Matlab)高斯背景建模(opencv)

背景建模,利用平均帧作为背景

%%Obtain the background image

imageDataSet=[];

subfolders = {'vidf1_33_000.y', 'vidf1_33_001.y', 'vidf1_33_002.y', 'vidf1_33_003.y', 'vidf1_33_004.y','vidf1_33_005.y', 'vidf1_33_006.y', 'vidf1_33_007.y', 'vidf1_33_008.y', 'vidf1_33_009.y'};

for i=1:length(subfolders)

for j=1:200

disp(['Processing image #' num2str(j) ' (out of 200)...']);

im = imread(['data/',subfolders{i},'/vidf1_33_', num2str(i-1, '%03d'),'_f',num2str(j, '%03d'),'.png']);

im=im(:);

imageDataSet=[imageDataSet,im];

disp('----------');

end

end

AveImg=sum(imageDataSet');

BacGImg=AveImg/2000;

figure;

imshow(reshape(BacGImg,158,238)/256);

foreGround=double(imageDataSet)-repmat(BacGImg',1,2000);

foreGround=abs(foreGround(3:end,3:end));

save('foreGround.mat','foreGround');

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

int main(){

Mat frame,mask,thresholdImage, output;

BackgroundSubtractorMOG2 bgSubtractor(20,16,true);

char image_name[35];//保存的图片名

IplImage * frame_std;

/*frame_std=cvLoadImage("D:\\vidf1_33_000_f001.png");

IplImage *dst = cvCreateImage(cvSize(frame.cols,frame.rows),frame_std->depth,frame_std->nChannels);

IplImage *img1 = cvCreateImage(cvGetSize(dst),IPL_DEPTH_8U,1);*/

//cvSaveImage("D:\\saveImage.jpg",dst);

IplImage * im_median_filter = cvCreateImage(cvSize(frame.cols,frame.rows), IPL_DEPTH_8U, 1);

for(int i=0;i<10;i++){

for(int j=1;j<201;j++){

sprintf(image_name,"data/vidf1_33_%03d_f%03d.png",i,j);

IplImage * im_input=cvLoadImage(image_name);

cv::Mat frame(im_input,0);

bgSubtractor(frame,mask,0.001);

//imshow("foreGround",mask);

IplImage * im_mask_gray=&(IplImage)mask;

//cvSmooth(im_mask_gray, im_mask_gray, CV_MEDIAN);

sprintf(image_name,"Foredata/vidf1_33_%03d_f%03d.png",i,j);

cvSaveImage(image_name,im_mask_gray);//保存目标图像

//cvCvtColor(dst,img1,CV_BGR2GRAY);

//cvShowImage("Example3",im_mask_gray);

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值