嵌入水印:
%在视频帧内嵌入水印信息,
%程序编制: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,[]);