本文主要是介绍视频数字水印,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
嵌入水印:
%在视频帧内嵌入水印信息,
%程序编制: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);
% endb1(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)
% endw(i,1:wn)=bitget(b(i,1:wn),1);
end
%%%%%%%%%%%%%%提取水印
imshow(w,[]);
这篇关于视频数字水印的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!