用matlab语言编写显示一幅彩色图像程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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_zhiluan = zhiluan(F1,F2);
pic2_zhiluan = zhiluan(F3,F4);
%显示置乱后的图像
pic1_zhiluan = uint8(pic1_zhiluan);
figure,imshow(pic1_zhiluan),title('pic1 zhiluan')
pic2_zhiluan = uint8(pic2_zhiluan);
figure,imshow(pic2_zhiluan),title('pic2 zhiluan')
%将两幅置乱图像进行隐藏
X1 = input('请输入一个混合迭代参数:');
pic1_hide = hide(pic1_zhiluan,X1,pic2_zhiluan);
%对隐藏后的图像进行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_zhiluan,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_zhiluan(pic1_huifu);
[image3,image4] = ni_zhiluan(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的直方图'
参考技术A showimg()
貌似是这样,好久没用了,现在电脑上都没装。你到帮助里看一下这个函数好了
参考技术B d=imread('图像路径\图像名.jpg');
imshow(d)

以上是关于用matlab语言编写显示一幅彩色图像程序的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎么读取一幅图像,并转换为灰度图像

matlab图像显示及保存

应用霍夫变换方法,用matlab语言编写相应的程序

MATLAB图像拼接问题

数字图像处理Matlab实现-图像增强-彩色图像增强(彩虹编码,热金属编码)

图像融合基于matlab泊松彩色图像融合含Matlab源码 1830期