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),[]);

