1、图像抖动
处理结果 = dither(原始图像)
%% 图像抖动 I = imread(\'cameraman.tif\'); subplot(1,2,1),imshow(I); J = dither(I); subplot(1,2,2),imshow(J);
2、数字水印
(1)嵌入水印的过程:
(2)具体实现
嵌入:
含水印图像 = Bitset(载体图像,嵌入位置,待嵌入信息)
提取:
水印图像 = Bitget(含水印载体图像,提取信息的位置)
%% 数字水印 % 嵌入 o = imread(\'lena.jpg\'); size(o); % imshow(o); w = imread(\'shuiyin.png\'); size(w); % imshow(w); ow = bitset(o,1,w); subplot(2,2,1),imshow(o,[]);title(\'原始载体图像\'); subplot(2,2,2),imshow(w,[]);title(\'水印图像\'); subplot(2,2,3),imshow(ow,[]);title(\'含水印载体图像\'); % 提取 wGet = bitget(ow,1); size(wGet) subplot(2,2,4),imshow(wGet,[]);title(\'提取的水印图像\');
3、图像融合
(1)加法融合
%% 加法融合 o1 = imread(\'lena.jpg\'); o2 = imread(\'shuiyin.png\'); r = o1*0.6+o2*0.2; subplot(1,3,1),imshow(o1); subplot(1,3,2),imshow(o2); subplot(1,3,3),imshow(r);
(2)小波融合
① 融合过程如下:
② 实现操作:
%% 小波融合 o1 = imread(\'cameraman.tif\'); o2 = imread(\'rice.png\'); % 正向小波分解 [o1c,o1s] = wavedec2(o1,1,\'haar\'); [o2c,o2s] = wavedec2(o2,1,\'haar\'); % 小波层面融合 rw = o1c+o2c; % 逆向小波分解 result = waverec2(rw,o1s,\'haar\'); % 显示 subplot(1,3,1),imshow(o1); subplot(1,3,2),imshow(o2); subplot(1,3,3),imshow(result,[]);
(3)小波大数融合
%% 小波大数融合 a = imread(\'1.png\'); b = imread(\'2.png\'); % 正向小波分解 [Ca,Sa] = wavedec2(a,3,\'haar\'); [Cb,Sb] = wavedec2(b,3,\'haar\'); Ra = zeros(size(Ca)); for i = 1:size(Ca,2) if Ca(i)>Cb(i) Ra(i)=Ca(i); else Ra(i)=Cb(i); end end result = waverec2(Ra,Sa,\'haar\'); subplot(1,3,1),imshow(a); subplot(1,3,2),imshow(b); subplot(1,3,3),imshow(unit8(result),[]);
请发表评论