導航:首頁 > 文檔加密 > matlab圖像加密擴散代碼

matlab圖像加密擴散代碼

發布時間:2022-12-27 05:23:55

⑴ 如何使用matlab實現jpeg圖像加密演算法之dct量化系數重組

加密過程中需要用兩類遍歷矩陣對圖像進行置亂加密,一類用來對明文圖像進行以8×8圖像塊為單位的統一置亂;
另一類用來對圖像DCT變換量化後的系數重新組合後的8×8系數塊內的系數進行置亂加密。
利用混沌系統產生隨即序列,然後對這該序列按大小進行排序,根據排序的序號可以產生所需要的遍歷矩陣。

⑵ matlab程序翻譯 求詳細文字說明 %% 加密 %imwrite(b_Q1,'lena2.tif','tif');

應該是視頻在前面,處理圖像在後面吧?
你後面的那個是每隔5幀截取一張圖片儲存並以i命名。
想要連接起來其實比較簡單的,就是在處理圖片處加一個大的for循環就可以了。
把視頻程序放前面。截圖儲存後再讀取處理,這里要注意的是你每隔5幀截一個圖片,是不是有點太頻了?還有弄個短點的視頻,5秒左右。這樣不會太浪費計算機資源,如果太大了可能會藍屏或者死機哦。
其實,連在一起很簡單的。就這樣;(我在我機子上運行了一次,儲存地址改了,你自己改回來吧)
clc;clear all;close all;
mov = VideoReader('C:\Users\epwqe_000\Desktop\MatlabAsa\sssss.avi');%改地址
fnum = mov.NumberOfFrames;%
for i = 1:5:fnum
frame = read(mov, i);
imshow(frame);

imwrite(frame,strcat('C:\Users\epwqe_000\Desktop\MatlabAsa\New Folder\',num2str(i),'.jpg'),'jpg');%改地址

img=strcat(num2str(i),'.jpg');
I = imread(img);

[Ix,Iy,Iz]=size(I);
if Ix>400&Iy>300
I=imresize(I,[400,Iy*400/Ix],'nearest');
end
figure
imshow(I)%輸出圖像
title('normal image')
I=double(I); %將I轉換成double類型
[hue,s,v]=rgb2hsv(I); %將RGB格式轉換成HSV格式
cb=0.148*I(:,:,1)-0.291*I(:,:,2)+0.439*I(:,:,3)+128;%將RGB轉換為YCrCb格式
cr=0.439*I(:,:,1)-0.368*I(:,:,2)-0.071*I(:,:,3)+128;
[w h]=size(I(:,:,1));%獲取轉化後的I圖像

for i=1:w
for j=1:h
if 145<=cr(i,j)&cr(i,j)<=165&145<=cb(i,j)&cb(i,j)<=180&0.01<=hue(i,j)&hue(i,j)<=0.15
segment(i,j)=1;
else
segment(i,j)=0;
end
end
end
figure
imshow(segment);

skin=segment;
% 去除小像素聯通區域
skin=bwareaopen(skin,round(w*h/900));
%dilating
se=strel('square',5);%創建結構區域
skin=imdilate(skin,se); %膨脹作用
im(:,:,1)=I(:,:,1).*skin;
im(:,:,2)=I(:,:,2).*skin;
im(:,:,3)=I(:,:,3).*skin;
figure
imshow(uint8(im));
title('skin areas')
BW = skin;
L = bwlabel(BW,8);%
BB = regionprops(L, 'BoundingBox');%L等於幾對應幾
BB1=struct2cell(BB);%轉換結構bb到bb1里
BB2=cell2mat(BB1);
figure,imshow(uint8(I));
title('result image');

[s1 s2]=size(BB2);
for k=3:4:s2-1
if (BB2(1,k)/BB2(1,k+1)) < 1.8 &&....
(BB2(1,k)/BB2(1,k+1)) > 0.4 &&....
(BB2(1,k)*BB2(1,k+1)) > 1000
hold on;
rectangle('Position',[BB2(1,k-2),BB2(1,k-1),BB2(1,k),BB2(1,k+1)],'EdgeColor','r' )%指定位置添加矩形
end
end
end

⑶ Matlab編程

看下這個程序function main() %主要思想是從兩幅圖像中選取信息,然後置亂成一幅圖像。 %這樣可以從要加密的多幅(2*n幅)圖像中,按照上述思想,得到一半數目(n幅)的圖像。 %對得到的圖像進行自適應演算法的隱藏,又可以得到(n-1)幅的圖像。 %對(n-1)幅的圖像進行Arnold變換,得到(n-1)幅的圖像作為密鑰,此外,密鑰還有迭代次數,置亂規則,Arnold加密規則 %主要缺點是Arnold的周期較大,程序的運行的時間長些,我的電腦需要8分鍾,另外,Arnold只能處理方陣 %圖像的置亂加密演算法很多,本程序中用到的置亂加密演算法只是其中一種方法,僅僅提出一個多幅圖像加密的思想,後期還有許多的工作要做。 %讀入四幅圖像 F1 = imread('lena.gif'); F2 = imread('monkey.gif'); F3 = imread('house.gif'); F4 = imread('cameraman.gif'); %對圖像的置亂 pic1_luan = luan(F1,F2); pic2_luan = luan(F3,F4); %顯示置亂後的圖像 pic1_luan = uint8(pic1_luan); figure,imshow(pic1_luan),title('pic1 luan') pic2_luan = uint8(pic2_luan); figure,imshow(pic2_luan),title('pic2 luan') %將兩幅置亂圖像進行隱藏 X1 = input('請輸入一個混合迭代參數:'); pic1_hide = hide(pic1_luan,X1,pic2_luan); %對隱藏後的圖像進行Arnold置亂加密 diedai1 = input('請輸入一個迭代的參數:') pic1_jiami = Arnold(pic1_hide,diedai1,0); %顯示加密後的圖像 pic1_jiami = uint8(pic1_jiami); figure,imshow(pic1_jiami),title('pic1 jiami') diedai2 = input('請輸入一個迭代的參數:') pic2_jiami = Arnold(pic2_luan,diedai2,0); pic2_jiami = uint8(pic2_jiami); figure,imshow(pic2_jiami),title('pic2 jiami') %解密圖像 pic1_jiemi = Arnold(pic1_jiami,diedai1,1); pic2_jiemi = Arnold(pic2_jiami,diedai2,1); %恢復隱藏後的圖像 pic1_huifu = huifu(pic1_jiemi,X1,pic2_jiemi); %置亂的逆處理,得到恢復後的圖像 [image1,image2] = ni_luan(pic1_huifu); [image3,image4] = ni_luan(pic2_jiemi); %顯示各個圖像 F1 = uint8(F1); figure,imshow(F1),title('F1'); figure,imhist(F1),title('F1的直方圖'); image1 = uint8(image1); figure,imshow(image1),title('image1'); figure,imhist(image1),title('image1的直方圖'); F2 = uint8(F2); figure,imshow(F2),title('F2'); figure,imhist(F2),title('F2的直方圖'); image2 = uint8(image2); figure,imshow(image2),title('image2'); figure,imhist(image2),title('image2的直方圖'); F3 = uint8(F3); figure,imshow(F3),title('F3'); figure,imhist(F3),title('F3的直方圖'); image3 = uint8(image3); figure,imshow(image3),title('image3'); figure,imhist(image3),title('image3的直方圖'); F4 = uint8(F4); figure,imshow(F4),title('F4'); figure,imhist(F4),title('F4的直方圖'); image4 = uint8(image4); figure,imshow(image4),title('image4'); figure,imhist(image4),title('image4的直方圖'

⑷ 怎樣用matlab對圖像加密與水印處理

去csdn找下,或者程序員聯合開發網,csdn的博客也可以找,下載那可以找相關資料找找www.csdn.netwww.pudn.com 希望對你有幫助

⑸ MATLAB圖像的加密與水印處理程序

基於Arnold變換的圖像加密: 記住把注釋掉的程序單獨寫個M文件,放在同一路徑下
clc;clear;close all;
randoma=input('請輸入用戶指令:','s');%
P=randoma;
%P=str2num(P);
if (P=='*****')
tu=uigetfile();
I=imread(tu);
imshow(tu);hold on;
%imshow('tu');
[M,N,P]=size(I);
rand('state',0);
% randoma=input('請輸入用戶指令:');%
% P=randoma;
% if (P==3.14)
T=96;
R=rand(M,N)*pi*2;
xlswrite('R.xls',R);
%kk=xlsread('jjm.xls');%32 43 55 63
a1=input('請輸入a1:');
a2=input('請輸入a2:');
a3=input('請輸入a3:');
a4=input('請輸入a4:');
kk=[a1,a2,a3,a4];
xlswrite('kk.xls',kk);
%%

I=double(I);
Ie=encrypt(I,R,kk);
figure;
imshow(Ie,[]);

%%
%%加密圖像 其中調用了encrypt函數
%function Ie=encrypt(I,R,kk);
%Ir=I(:,:,1);Ig=I(:,:,2);Ib=I(:,:,3);
% [Xr,Xg,Xb]=Tmatrix(Ir,Ig,Ib,R);
% I1r=blkart2a(Xr,kk);I1g=blkart2a(Xg,kk);I1b=blkart2a(Xb,kk);
% I0r=dct2(I1r);I0g=dct2(I1g);I0b=dct2(I1b);
% [X1r,X1g,X1b]=Tmatrix(I0r,I0g,I0b,R);
% I2r=blkart2a(X1r,kk);I2g=blkart2a(X1g,kk);I2b=blkart2a(X1b,kk);
% I3r=idct2(I2r);I3g=idct2(I2g);I3b=idct2(I2b);
% Ie(:,:,1)=I3r;Ie(:,:,2)=I3g;Ie(:,:,3)=I3b;

% [Xr,Xg,Xb]=Tmatrix(Ir,Ig,Ib,R);
% Xr=Ir.*cos(R)+Ig.*sin(R).^2-Ib.*sin(R).*cos(R);
% Xg=-Ir.*sin(R)+Ig.*sin(R).*cos(R)-Ib.*cos(R).^2;
% Xb=Ig.*cos(R)+Ib.*sin(R);

a1=input('請輸入a1:');
a2=input('請輸入a2:');
a3=input('請輸入a3:');
a4=input('請輸入a4:');
kk=[a1,a2,a3,a4];
R=uigetfile();
R=xlsread('R.xls');
%%

Ii=decrypt(Ie,R,kk);
Ii=Ii-min(Ii(:));Ii=Ii/max(Ii(:));
h = waitbar(0,'Please wait...');
steps = 600;
for step = 1:steps
%figure;imshow(Ii,[]);
waitbar(step / steps)
end
close(h)
figure;imshow(Ii,[]);
h = waitbar(1,'完成解密','color','');
steps = 1;
for step = 1:steps
h = waitbar(1,'finish!','color','');
end
close(h);
warning off
end
%%
%%解密圖像,調用decrypt函數
% function J=decrypt(Ie,R,kk);
% T=96; % period of Arnold transform
% J2r=Ie(:,:,1);J2g=Ie(:,:,2);J2b=Ie(:,:,3);
% J2r=dct2(J2r);J2g=dct2(J2g);J2b=dct2(J2b);
% Y1r=blkart2a(J2r,T-kk);Y1g=blkart2a(J2g,T-kk);Y1b=blkart2a(J2b,T-kk);
% [J0r,J0g,J0b]=iTmatrix(Y1r,Y1g,Y1b,R);
% J1r=idct2(J0r);J1g=idct2(J0g);J1b=idct2(J0b);
% Yr=blkart2a(J1r,T-kk);Yg=blkart2a(J1g,T-kk);Yb=blkart2a(J1b,T-kk);
% [Jr,Jg,Jb]=iTmatrix(Yr,Yg,Yb,R);
% J(:,:,1)=Jr;J(:,:,2)=Jg;J(:,:,3)=Jb;

⑹ 各位大俠,急求AES圖像加密的MATLAB代碼!!!

首先說定義的函數可能在調用時出現問題,原因是函數的輸入部分plot在其中並沒有使用,再者輸出參數應包括m和n,因此函數定義部分應該改為function
[hist,
rgbt,m,n]
=
getimagehists(imagename)。
在執行完hist
=
hist
/
(m*n),執行如下語句完成數據保存
save
hists.mat
hist
接著可以執行
clear
all
並執行
load
hists.mat
hist
及whos
以驗證數據存儲是否成功

⑺ matlab中要得到圖像經過點擴散函數(PSF)後的圖像用什麼語句

用圖像I對點擴散函數PSF做2維卷積,不過卷積的效率很低,得轉到頻域做,因為時卷頻乘,
總的步驟就是:out = IFFT(FFT(I).*FFT(PSF)),注意這里是點乘,是矩陣中位置相同的元素相乘

但是一般I的尺寸比PSF大,要把PSF放到一個和I矩陣一樣大的0矩陣的中心再做FFT,得到FFT(PSF)

⑻ 跪求水平集matlab處理圖像代碼!

看看這個程序函數main() - 北美%,其主要思想是選擇從兩個圖像信息,然後爭先恐後到一個單一的形象。
%,可以從多個(2 * n個)按照上述思路的圖像進行加密,得到一半的數量(n個)圖像。
%所獲得的圖像隱藏的自適應演算法中,並且能夠獲得第(n-1)個圖像。
%對於第(n-1)個圖像Arnold變換的,第(n-1)作為密鑰塊的圖像,此外,密鑰有迭代的次數,加擾規則,阿諾德加密規則 BR>%阿諾德的主要缺點是較大的周期,程序運行的時間很長,我的電腦需要8分鍾,另一個,阿諾德只能處理方陣大量的擾碼加密演算法,程序中使用的圖像
%擾碼加密演算法,只有一個辦法,只是提出了佔地多圖像加密的思想,有要遲到做了很多工作。

%閱讀4畫面
F1 = imread('lena.gif');
F2 = imread('monkey.gif');
F3 = imread('house.gif');
F4 = imread('cameraman.gif');圖像置亂
pic1_luan = luan(F1,F2) - 北美%;
pic2_luan = luan(F3,F4);

%的顯示失真的圖像
pic1_luan = UINT8(pic1_luan);
圖,imshow(pic1_luan),標題(「圖片1 luan') - 歐洲pic2_luan = UINT8(pic2_luan);
圖,imshow(pic2_luan),標題(「PIC2 luan') - 中東%的兩幅圖像都爭先恐後地隱藏
X1 =輸入('請輸入一個混合迭代參數:' );
pic1_hide =隱藏(pic1_luan,X1,pic2_luan);圖像

%是經過Arnold置亂加密
diedai1 =輸入隱藏的('輸入參數迭代:')
pic1_jiami =阿諾德(pic1_hide,diedai1,0);

%,顯示加密圖像
pic1_jiami = UINT8(pic1_jiami);
圖,imshow(pic1_jiami),標題(「圖片1佳米') - 歐洲diedai2 =輸入('請輸入一個迭代參數:')
pic2_jiami =阿諾德(pic2_luan,diedai2,0);

pic2_jiami = UINT8(pic2_jiami);
圖,imshow(pic2_jiami),標題(「PIC2佳米') - 北美%解密圖像
pic1_jiemi =阿諾德(pic1_jiami,diedai1,1);
pic2_jiemi =阿諾德(pic2_jiami,diedai2,1);隱藏圖像
pic1_huifu =惠福(pic1_jiemi,X1,pic2_jiemi)以後 -
%的回收率;

%爭先恐後逆過程,得到的圖片
恢復[較受歡迎,圖像2] = ni_luan(pic1_huifu);
[為image3,為image4] = ni_luan(pic2_jiemi);

%,顯示每個圖像
F1 = UINT8(F1);
圖,imshow(F1),標題(「F1」);
圖,imhist(F1),標題(「F1直方圖');

較受歡迎= UINT8(較受歡迎);
圖,imshow(較受歡迎),標題(「較受歡迎」);
圖,imhist(較受歡迎),標題(「較受歡迎直方圖');

F2 = UINT8(F2);
圖,imshow(F2),標題('F2');
圖,imhist(F2),標題('F2的直方圖');

較受歡迎= UINT8(圖片2);
圖,imshow(圖片2),標題(「圖像2');
圖,imhist(圖片2),標題(「直方圖的圖像2');

F3 = UINT8(F3);
圖,imshow(F3),標題(「F3」);
圖,imhist(F3),標題(「F3的直方圖');

為image3 = UINT8(為image3);
圖,imshow(為image3),標題(「為image3');
圖,imhist(為image3),標題(「直方圖為image3');

F4 = UINT8(F4);
圖,imshow(F4),標題(「F4」);
圖,imhist(F4),標題(「F4的直方圖');

為image4 = UINT8(為image4);
圖,imshow(為image4),標題(「為image4');
圖,imhist(為image4),標題(「為image4直方圖」

⑼ 高斯擴散模型matlab代碼

你沒有看到我的評論嗎?這是由於使用的matlab版本不同造成的,在那個提問中,由於x的范圍取值有負數所以開方有復數,在我的版本中mesh仍可作圖,新版更嚴格所以提示不能作圖。很好解決,用[x,y]=meshgrid(0:20:5000,-3000:20:3000); 替換原程序的那行即可。圖更漂亮,風向上(cx)5000m外都還有污染,而垂直風向(cy)1000多米就沒有了,你試試吧!

⑽ 求助用matlab實現圖像加密 基於lorenz混沌映射的

使用以下代碼: clear;clc; x=imread('lena.bmp','bmp'); [a b c]=size(x); N=a*b; m(1)=input('請輸入密鑰: '); disp('加密中...'); for i=1:N-1 m(i+1)=4*m(i)-4*m(i)^2; end

閱讀全文

與matlab圖像加密擴散代碼相關的資料

熱點內容
mysql命令行版本 瀏覽:303
如何進入itunes找文件夾 瀏覽:830
CAD中重復命令使用 瀏覽:477
心智pdf 瀏覽:473
網站電台直播間源碼 瀏覽:850
文件夾14c和18c的區別 瀏覽:34
android隱式調用 瀏覽:667
plc的編程指令邊沿繼電器 瀏覽:721
voc文件夾 瀏覽:862
租廣東聯通伺服器注意什麼雲空間 瀏覽:932
javascript高級程序設計pdf 瀏覽:289
pwm單片機原理 瀏覽:346
ai演算法在線修復圖片 瀏覽:979
scratch編程中如何做射擊游戲 瀏覽:476
at89c51編程器 瀏覽:341
項目經理叫醒程序員 瀏覽:342
autocad旋轉命令 瀏覽:660
手機版wpsoffice怎麼打包文件夾 瀏覽:579
在成都學車用什麼app 瀏覽:818
grep命令管道 瀏覽:426