问个很白痴的matlab问题 求大虾解决!!

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:28:40
毕业设计做数字水印的,需要一张256级灰度图像lena做为水印,在嵌入过程后还要将其分成8*8的子块,可我在网上找的lena图片好多都是看着是灰度图片,用mat读取后I=imread('D:\lena.jpg')是I(:,:,1)=一个128*128的矩阵,还有I(:,:,2)I(:,:,3),这为什么是三维的啊?有高手解释下吗,我希望弄个lena灰度图片,读入后 矩阵直接是I=128*128的矩阵,怎么弄啊,各位大虾们帮忙

这个很简单,因为你下的图片看起来是灰度的,其实他是伪彩色rgb的,你只要在你的语句
I=imread('D:\lena.jpg');
其后再加一句:
I=rgb2gray(I);
然后你再看看I是什么样的!

如果你希望你程序一开始读入的就是I=128*128的图片,也有办法的,按下面说的做:
I=imread('D:\lena.jpg');
I=rgb2gray(I);
imwrite(I,'D:\lena0.jpg');

这样,在你的D盘会产生一个lena0.jpg的图片,它就是一个灰度图像,下次你程序开始可以直接:

I=imread('D:\lena0.jpg');
这样得到的I肯定是I=128*128的矩阵!

砸电脑吧