【问题标题】:matlab frames undergo change in pixel value after reconstruction. how to avoid this?matlab 帧在重建后会发生像素值的变化。如何避免这种情况?
【发布时间】: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的值,表示视频重建后像素值发生巨大变化的数量。事实上,为了让我的代码正常工作,不应更改像素值。有解决办法吗?

【问题讨论】:

    标签: matlab video frames


    【解决方案1】:

    MPEG-4 不是无损的,至少不是VideoWriter 在这里使用它的方式。

    在创建VideoWriter(即writerObj = VideoWriter(filename,profile))时尝试将profile参数设置为'Archival'

    profile

    用单引号括起来的字符串,描述要创建的文件类型。指定配置文件会设置视频属性的默认值,例如 VideoCompressionMethod。可能的值:

    'Archival'Motion JPEG 2000 无损压缩文件

    'Motion JPEG AVI' 使用 Motion JPEG 编解码器的压缩 AVI 文件

    'Motion JPEG 2000' 压缩运动 JPEG 2000 文件

    'MPEG-4' 采用 H.264 编码的 MPEG-4 压缩文件(Windows 7 或 Mac OS X 10.7 及更高版本的系统)

    'Uncompressed AVI' RGB24 视频的未压缩 AVI 文件

    但是,如果您的系统支持 H.264 编码,'Archival' 将提供一个巨大的文件,而 'MPEG-4' 将提供最佳的压缩质量折衷。对于有损压缩方法(例如'MPEG-4''Motion JPEG AVI'),使用更高的Quality 设置将有助于提高质量,但无论质量如何,像素值不会相同设置好了。

    请注意,在无损压缩中,不使用Quality 选项。


    注意:在没有循环的情况下计算不同像素的数量:

    count = sum(x(:)==y(:))
    

    【讨论】:

    • 先生,两个视频的帧数相同,像素值完全相同,所以当您说使用“存档”配置文件获得的重建文件会比原始文件大时是什么意思一? ...
    • @user3197936 磁盘上的文件大小会比使用 MPEG-4 时更大
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多