‘壹’ 请问您那有数字图像加密的matlab实现及仿真吗毕设急用……O(∩_∩)O谢谢
同求,朋友
‘贰’ 用Matlab代码怎么实现找出像素密集区域的像素坐标来,并且用红框圈出
基本思路
1就是先看看要找的点和背景颜色不同的界限,可以自己规定,比如红绿蓝同时大于200就认为是黑色。
2把所有的异常点找出来,以每个异常点为中心,指定长度为半径(可以自己规定比如10个像素),如果包含其他点,就把这些点放在一起。也就是聚类。
3把每组聚类的结果取上下左右边界(为了看得清楚可以四周都加上一个常数)。
编程需要考虑的因素比较多,这里没有代码
1认为黑色的标准,需要看大量的图,自己找一个基本靠谱的数值,数值确定不容易。
2判断半径大小,就是认为在一起最大距离的标准,也是需要看大量图片甚至还有实验边做边改。
3准确率的判定,先按照上面把程序写出来,再去观察结果,哪些不符合自己的心意,然后再修改相应的参数。
‘叁’ 我想用matlab把一张512*512的灰度图像素拓展成1024*1024,不知怎么着手,求指导,求相关文章指导
% 给个代码参考下
I=imread('000.jpg');
subplot(2,2,1);
imshow(I);
title('原图');
subplot(2,2,2);
I1=imresize(I,1.2,'nearest');
imshow(I);
title('最近邻法放大1.2倍');
subplot(2,2,3);
I2=imresize(I,1.2,'bilinear');
imshow(I2);
title('双线性插值法放大1.2倍');
subplot(2,2,4);
I3=imresize(I,1.2,'bicubic');
imshow(I3);
title('双三次插值放大1.2倍');
grid on
‘肆’ Matlab GUI界面设计,通过选用不同算法,可以对图像进行加密,怎么实现代码如何编写
用button group 然后返回值是1/2/3/4.。。。然后就是switch case
‘伍’ 求编一个MATLAB函数,实现矩阵扩展一个像素~~~~成功再追加100分!因为急迫,所以信誉!!
imageex(limage,heightx2,widthx2);
A=size(height,width);
B=zeros(m+h*2,n+w*2); %创建个扩展大小的0矩阵
B(h+1:h+m,w+1:w+n)=A(m,n); %将原矩阵填入中间位置
B(1:h,w+1:w+n)=A(1,:); %大矩阵的上面扩展行赋值为原矩阵的第一行
B(h+m+1:h*2+m)=A(m,:); %大矩阵的下面扩展行赋值为原矩阵的最后一行
B(h+1:h+m,1:w)=A(:,1); %大矩阵的左面扩展列赋值为原矩阵的最左一列
B(h+1:h+m,w+n+1:n+w*2)=A(:,n) %大矩阵的右面扩展列赋值为原矩阵的最右一列
%其中height替换为m
%width替换为n
%heightx2替换为h
%widthx2替换为w
‘陆’ 各位大侠,急求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),谢谢!
clear;clc; % 清空命令行和workspace变量
x=imread('加密后的mozhun.bmp','bmp'); %读取图像
[a b c]=size(x); %获取图像3个通道的大小
N=a*b;
m(1)=input('请输入密钥: '); %input输入命令,提示输入密钥
disp('解密中'); %显示字符串‘解密中’
for i=1:N-1 %判断是否是正确的密钥
m(i+1)=4*m(i)-4*m(i)^2;
end
m=mod(1000*m,350); %求模运算
m=uint8(m); %将m中的每个元素设置为Uint8型的元素而不是double型
n=1;
for i=1:a
for j=1:b
e(i,j)=bitxor(m(n),x(i,j)); %对图像中每个像素点进行按位异或
n=n+1;
end
end
imwrite(e,'解密后的mozhun.bmp','bmp'); %将解密后的图片以位图形式写入文件
disp('解密成功'); %显示提示信息
winopen('解密后的mozhun.bmp');% 打开解密图片
总的来说,这个程序的作用就是读一张经过加密的图片,然后通过输入的密钥对图像进行解密,并将解密之后的图片保存并显示。
‘捌’ 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;
‘玖’ 怎样用MATLAB实现图像两边添加列像素,使图像达到1728*1000
Yimage=zeros(1728,1000);%先定义一个空阵1728*1000
figure(1);
subplot(131)
imshow(Yimage);
Image=imread('F:Image.bmp');%读入你想把它扩大的Image
subplot(132)
imshow(Image);
Ymage(1217:1728,489:1000)=Image(1:512,1:512);%将整个Image赋给Ymage的一部分这样就完成了扩大Image,由于我的图像Image是512*512的,所以Ymage取(1217:1728,489:1000),这个你编程时因图像而异
subplot(133)
imshow(Ymage);%画图显示新的图像
‘拾’ 简单的图像加密程序,用matlab实现的
问老师