【发布时间】:2014-03-04 01:36:06
【问题描述】:
我想将我的图像水印项目扩展到视频,使用预测和排序方法。简单来说,我想处理每一帧,在发送端对像素值进行一些更改,重建视频从修改后的帧中,并希望在接收端撤销所有这些像素变化。我的问题是,在编辑帧后重建视频时,像素值会再次发生变化。我用下面给出的代码对其进行了测试。 (我没有对像素进行任何修改,只是从第一个视频中读取,将该帧以相同格式写入另一个视频并检查两个视频的第一帧的像素值)
readerobj = VideoReader('produce.mp4');
vidFrames = read(readerobj);
numFrames = get(readerobj, 'NumberOfFrames')
outputVideo = VideoWriter('produce_new','MPEG-4');
outputVideo.FrameRate = readerobj.FrameRate;
open(outputVideo);
q=1;
x=read(readerobj,q);
for q=1:numFrames
frames=read(readerobj,q);
frame_store=frames;
writeVideo(outputVideo,frame_store);
end
close(outputVideo);
readerobj = VideoReader('produce_new.mp4');
vidFrames = read(readerobj);
numFrames = get(readerobj, 'NumberOfFrames')
q=1;
y=read(readerobj,q);
count=0;
for i=1:size(x,1)
for j=1:size(x,2)
if x(i,j)~=y(i,j)
count=count+1;
end
end
结束 数
count的值,表示视频重建后像素值发生巨大变化的数量。事实上,为了让我的代码正常工作,不应更改像素值。有解决办法吗?
【问题讨论】: