如何在MATLAB中对检测到的人脸进行像素化/模糊?

如何在MATLAB中对检测到的人脸进行像素化/模糊?,matlab,computer-vision,matlab-cvst,Matlab,Computer Vision,Matlab Cvst,我需要在视频中自动模糊/像素化人脸。我是用MATLAB脚本做的。我有R2013a版本,所以像readFrame和hasFrame这样的函数不起作用,因此产生了奇怪的代码。代码当前使用框对面进行注释。我需要对这个区域进行像素化,或者最好使用高斯模糊。我该怎么做?我找不到任何相关的东西 %%MATLAB Code for R2013a (Code needs revision for newer versions) for boxing faces in a mp4 file file.mp4, s

我需要在视频中自动模糊/像素化人脸。我是用MATLAB脚本做的。我有R2013a版本,所以像readFrame和hasFrame这样的函数不起作用,因此产生了奇怪的代码。代码当前使用框对面进行注释。我需要对这个区域进行像素化,或者最好使用高斯模糊。我该怎么做?我找不到任何相关的东西

%%MATLAB Code for R2013a (Code needs revision for newer versions) for boxing faces in a mp4 file file.mp4, saving it in AVI format as Detected_One
videoFReader = vision.VideoFileReader('file.mp4');
Videra=VideoReader('file.mp4');
%%Extracts original footage's num_frames and frame_rate
numFr=Videra.NumberOfFrames;
frmRa=Videra.FrameRate;
writerObj = VideoWriter('Detected_One');
%%Sets the written video's framerate as that of old
writerObj.FrameRate = frmRa;
open(writerObj);
faceDetector = vision.CascadeObjectDetector();

for i=1:numFr
    display(i);
    videoFrame = step(videoFReader);
    bbox            = step(faceDetector, videoFrame);
    videoOut = insertObjectAnnotation(videoFrame,'rectangle',bbox,'Face');
    writeVideo(writerObj,videoOut);
close(figure);

end

release(videoFReader);
close(writerObj);
如果你用谷歌搜索“高斯模糊Matlab”,你将进入下一页:

您可以了解如何模糊:

H = fspecial('gaussian',[5 5],0.5);
blurred = imfilter(Image,H,'replicate');

如果您只想模糊图像的一部分,请提取该部分,模糊它,然后再次修补它

谢谢!我不知道提取和修补部分图像的可能性。@Ashtrix没问题;)。希望答案有帮助。我已经把提取的部分弄模糊了,但我不知道如何修补它。将此提取的部分修补回其所属位置的最简单方法是什么?如果您有一个用于提取哪些部分的掩码,它将类似于
FullImage(mask)=fuzzle