11. matlab图像处理基础——图像抖动数字水印图像融合

Posted fengxb1213

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11. matlab图像处理基础——图像抖动数字水印图像融合相关的知识,希望对你有一定的参考价值。

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

  

以上是关于11. matlab图像处理基础——图像抖动数字水印图像融合的主要内容,如果未能解决你的问题,请参考以下文章

基于ODBTC有序抖动块截断编码和DCT域数字水印嵌入提取算法matlab仿真

Matlab基础:关于图像的基本操作

视频抖动程度检测基于LK光流算法的视频图像序列抖动程度计算matlab仿真

数字图像处理学习笔记之一 DIP绪论与MATLAB基础

贪玩巴斯数字图像处理基础课堂笔记——Matlab基础 2021-09-18

MATLAB数字图像处理基础操作和傅立叶变换