Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image MATLAB:使用VideoReader后如何更改像素值_Image_Matlab_Video - Fatal编程技术网

Image MATLAB:使用VideoReader后如何更改像素值

Image MATLAB:使用VideoReader后如何更改像素值,image,matlab,video,Image,Matlab,Video,我正在尝试使用VideoReader读取视频文件,并更改一些像素值,然后将其保存回视频文件。我可以轻松更改矩阵值,但如何将其保存回视频文件 obj = VideoReader('DemoClip.asf'); imageData = read(obj); imageData(17,32,:) = 65; 这里有一种方法可以使用。代码被注释;如果有不清楚的地方,请询问。我使用了Mathworks的demo xylophone.mp4文件 clear clc close all xyloObj

我正在尝试使用VideoReader读取视频文件,并更改一些像素值,然后将其保存回视频文件。我可以轻松更改矩阵值,但如何将其保存回视频文件

obj = VideoReader('DemoClip.asf');
imageData = read(obj);
imageData(17,32,:) = 65;

这里有一种方法可以使用。代码被注释;如果有不清楚的地方,请询问。我使用了Mathworks的demo xylophone.mp4文件

clear
clc
close all

xyloObj = VideoReader('xylophone.mp4');

imageData = read(xyloObj);

%// Open writer object
writerObj = VideoWriter('NewVideo.avi');
open(writerObj);

%// Show 1st frame
hIm = imshow(imageData(:,:,:,1));
for k = 1:size(imageData,4)

    %// Change pixel values
    imageData(1:200,1:200,:,k) = uint8(0);

    %// Refresh cdata property. Faster than calling repetitevely imshow
    set(hIm,'CData',imageData(:,:,:,k));

    drawnow
    frame = getframe;
    %// Write to video file
    writeVideo(writerObj,frame);

end

close(writerObj);
结果视频的示例帧:


标签只能用于有关处理语言的问题。非常感谢!我还有一个问题。我注意到VideoWriter只允许创建.avi文件。有可能把它做成另一种类型吗?例如.asf?VideoWriter允许您编写运动JPEG AVI、未压缩AVI、运动JPEG 2000和MPEG-4/H.264。有关详细信息,请参阅VideoWriter文档。