日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

利用matlab提取水印,怎么在含有水印的图像中提取出水印

發布時間:2023/12/19 循环神经网络 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用matlab提取水印,怎么在含有水印的图像中提取出水印 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

%水印嵌入代碼

M = 256;%原始圖像長度

N = 32; %水印圖像長度

K = 8;

I = zeros(M, M);

J = zeros(N, N);

BLOCK = zeros(K, K);

%顯示原始圖像

subplot(221);

I = imread('C:\Users\Rocky\Documents\MATLAB\cameraman.bmp');

imshow(I);

title('原始圖像');

%顯示水印圖像

subplot(222);

J = imread('C:\Users\Rocky\Documents\MATLAB\matlab.bmp');

imshow(J);

title('水印圖像');

%嵌入水印

temp = 1;

for p = 1 : N;

for q = 1 : N;

x = (p - 1) * K + 1;

y = (q - 1) * K + 1;

BLOCK = I(x: x + K - 1, y: y + K - 1);

BLOCK = dct2(BLOCK);

if J(p, q) == 0;

a = -1;

else

a = 1;

end

BLOCK(2, 1) = BLOCK(2, 1) * (1 + a * 0.01);

BLOCK = idct2(BLOCK);

I(x: x + K - 1,y: y + K - 1) = BLOCK;

end

end

%顯示嵌入水印后的圖像

subplot(223);

imshow(I);

title('嵌入水印后的圖像');

imwrite(I,'watermarked.tif','tif');

%從嵌入水印的圖像中提取水印

I = imread('cameraman.tif');

J = imread('watermarked.tif');

for p = 1 : N;

for q = 1 : N;

x = (p - 1) * K + 1;

y = (q - 1) * K + 1;

BLOCK1 = I(x: x + K - 1,y: y + K - 1);

BLOCK2 = J(x: x + K - 1,y: y + K - 1);

BLOCK1 = idct2(BLOCK1);

BLOCK2 = idct2(BLOCK2);

a = BLOCK2(1,1) / BLOCK1(1, 1) - 1;

if a < 0

W(p, q) = 0;

else

W(p, q) = 1;

end

end

end

%顯示提取的水印

subplot(224);

imshow(W);

title('從含水印圖像中提取水印');

總結

以上是生活随笔為你收集整理的利用matlab提取水印,怎么在含有水印的图像中提取出水印的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。