Image MATLAB:使用VideoReader后如何更改像素值
我正在尝试使用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
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文档。