1

我有一个视频,我正在使用背景减法和运动分割。视频中的地板是黑色的,所以当我得到剪影时,脚和腿的一部分被切掉了。有没有解决这个问题?这就是它的样子。在此处输入图像描述

在此处输入图像描述

这是背景图像。这是我的一段代码......

clear all
close all
clc
% Read the video in the video object Mov
MM = mmreader('kassie_test_video.wmv');
% Read in all video frames.
Mov = read(MM);
% Get the number of frames.
FrameNum = MM.NumberOfFrames;
% load 'object_data.mat'
BackgroundImage = (Mov(:,:,:,98)); % background image
% set the sampling rate as well as the threshold for binary image.
downSamplingRate = MM.FrameRate;
%%
index = 1;
clear IM
clear Images
sf=10;ef=sf+30;
for ii =sf:ef

    % Extract next frame
    Im = im2double(Mov(:,:,:,ii));

    % Background subtraction
    Ib = rgb2gray(abs(im2double((Mov(:,:,:,ii)))-im2double(BackgroundImage)));
    % conversion to binary image.
    Thresh = graythresh(Ib);
    Ib = im2bw(Ib, Thresh);
    se = strel('square',1);
    Ib = imerode(Ib,se);    % Erode the image
    Ib = medfilt2(Ib);      % median filtering
    Ib = imfill(Ib,'holes');    % fill the holes in the image
    imshow(Ib,[])
end
4

1 回答 1

2

在计算机视觉中仅使用像素处理而不结合更高级别的语义信息可以实现的目标是有限的。似乎他唯一让你觉得腿不见了的东西就是对身体应该是什么样子的高级知识。这里真正的问题是:像素中是否有任何真实信息?如果碰巧腿与背景颜色完全相同,除非您结合高级语义信息,否则您无能为力。

于 2012-12-09T05:24:14.497 回答