matlab怎么加密和破译摩斯密码

matlab怎么加密和破译摩斯密码,第1张

在百度的密码吧里,这则已有1668个跟贴,名字为《求救,我已经快想爆了》的帖子里,发帖主人HighnessC说:“最近和一个心仪的女生告白,谁知道她给了一个摩斯密码给我,说解出来才答应和我约会。可是我用尽了所有方法都解不开这个密码。。好郁闷啊。只能求救你们了。”“她唯一给我的提示就是这个是5层加密的密码,也就是说要破解5层密码才是答案。”“最终语言是英语。”HighnessC说。此时是2008年1月23日凌晨4点23分。这个帖子很快引起了网友的关注,并且就在23日当天晚上20点02分,注册名字为片羿天使的网友在第207楼解开了谜底。 天津众 维原画设计提供

首先说定义的函数可能在调用时出现问题,原因是函数的输入部分plot在其中并没有使用,再者输出参数应包括m和n,因此函数定义部分应该改为function

[hist,

rgbt,m,n]

=

getimagehists(imagename)。

在执行完hist

=

hist

/

(mn),执行如下语句完成数据保存

save

histsmat

hist

接着可以执行

clear

all

并执行

load

histsmat

hist

及whos

以验证数据存储是否成功

应该是视频在前面,处理图像在后面吧?

你后面的那个是每隔5帧截取一张储存并以i命名。

想要连接起来其实比较简单的,就是在处理处加一个大的for循环就可以了。

把视频程序放前面。截图储存后再读取处理,这里要注意的是你每隔5帧截一个,是不是有点太频了?还有弄个短点的视频,5秒左右。这样不会太浪费计算机资源,如果太大了可能会蓝屏或者死机哦。

其实,连在一起很简单的。就这样;(我在我机子上运行了一次,储存地址改了,你自己改回来吧)

clc;clear all;close all;

mov = VideoReader('C:\Users\epwqe_000\Desktop\MatlabAsa\sssssavi');%改地址

fnum = movNumberOfFrames;%

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,Iy400/Ix],'nearest');

end

figure

imshow(I)%输出图像

title('normal image')

I=double(I); %将I转换成double类型

[hue,s,v]=rgb2hsv(I); %将RGB格式转换成HSV格式

cb=0148I(:,:,1)-0291I(:,:,2)+0439I(:,:,3)+128;%将RGB转换为YCrCb格式

cr=0439I(:,:,1)-0368I(:,:,2)-0071I(:,:,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&001<=hue(i,j)&hue(i,j)<=015

segment(i,j)=1;

else

segment(i,j)=0;

end

end

end

figure

imshow(segment);

skin=segment;

% 去除小像素联通区域

skin=bwareaopen(skin,round(wh/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)) < 18 &&

(BB2(1,k)/BB2(1,k+1)) > 04 &&

(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

加密过程中需要用两类遍历矩阵对图像进行置乱加密,一类用来对明文图像进行以8×8图像块为单位的统一置乱;

另一类用来对图像DCT变换量化后的系数重新组合后的8×8系数块内的系数进行置乱加密。

利用混沌系统产生随即序列,然后对这该序列按大小进行排序,根据排序的序号可以产生所需要的遍历矩阵。

以上就是关于matlab怎么加密和破译摩斯密码全部的内容,包括:matlab怎么加密和破译摩斯密码、各位大侠,急求AES图像加密的MATLAB代码!!!、matlab程序翻译 求详细文字说明 %% 加密 %imwrite(b_Q1,'lena2.tif','tif');等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10107763.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存