视频数字水印

嵌入水印:

%在视频帧内嵌入水印信息,
%程序编制:lilizong@gmai.com
%2013-9-14
%必须注意使用bitset要使用返回值的中间变量,调试好久了!!!!!!
cd 'E:\Copyright\13年\soft4'
clc;
clear all;
aviobj=avifile('myAVI\myAVI');
aviobj.Quality=100;
aviobj.compression='None';
mov=mmreader('myAVI\mCircle.avi');     %用mmreader读入视频文件  50帧
watermark=imread('image\watermark.bmp');    %读入水印信息  size=50*75
[wm wn]=size(watermark);
%%%%%%%%%%%%%%获取置乱后的视频
for i=1: wm %水印的高度  或者:mov.numberofframes       %获得总帧数,并依次读取
    b=read(mov,i);
    b1=b;
%     for m=1:wn
%         w=bitget(uint8(watermark(i,m)),1);
%         bitset(b(1,1,1),1,1);
%     end
    b1(i,1:75,1)=bitset(b(i,1:75,1),1,watermark(i,1:75));   %注意必须设置一个中间变量b1!!!!!!!!!
    aviobj=addframe(aviobj,b1);
end
aviobj=close(aviobj);
% b=read(mov,25);
% imshow(b);
% figure;
% imshow(watermark);
% b1=b;
% b1(1:50,1:75,1)=bitset(b(1:50,1:75,1),8,watermark);
% w=bitget(b1(1:50,1:75,1),8);
% b1=bitset(b,8,1);
% w=bitget(b1,8);
% figure;
% imshow(w,[]);
% figure,
% imshow(b1);
%%%%%%%%%%%%%%获取置乱后的视频
%%%%%嵌入停顿标记
% mplay('myAVI\myAVI.avi');
%%%%%嵌入停顿标记

提取水印

%在视频帧内提取水印信息,
%程序编制:lilizong@gmai.com
%2013-9-14
cd 'E:\Copyright\13年\soft4'
clc;
clear all;
mov=mmreader('myAVI\myAVI.avi');     %用mmreader读入视频文件
wm=50;  %水印的高度
wn=75;   %水印的宽度
w=zeros(wm ,wn);
%%%%%%%%%%%%%%提取水印
for i=1:wm  %水印的高度  或者:mov.numberofframes       %获得总帧数,并依次读取
      b=read(mov,i);
%       for m=1:wn
%           w(i,m)=bitget(b(1,1,1),1)
%        end
    w(i,1:wn)=bitget(b(i,1:wn),1);
end
%%%%%%%%%%%%%%提取水印
imshow(w,[]);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值