苹果也疯狂 当前离线
论坛元老
>> I=imread('D:\Lena.jpg');
>> x=rgb2gray(I);
>> figure(1);
>> subplot(121);
>> imshow(I);
>> title('原始图像');
>> subplot(122);
>> imshow(x);
>> title('灰度图像');
<IMG style="ADDING-BOTTOM: 0px; BORDER-RIGHT-WIDTH: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; PADDING-TOP: 0px; border-image: initial" title="matlab 用rgb2gray 将彩色图像转换为灰度图像" name=image_operate_3971374122690229 alt="matlab 用rgb2gray 将彩色图像转换为灰度图像" src="http://s1.sinaimg.cn/mw690/735f2910ge1c19d5778b0&690" real_src="http://s1.sinaimg.cn/mw690/735f2910ge1c19d5778b0&690" action-type="show-slide" action-data="http%3A%2F%2Fs1.sinaimg.cn%2Fmw690%2F735f2910ge1c19d5778b0%26690">
彩色图像是RGB,直接用rgb2gray
MATLAB 并没有自带gray2rgb 灰度图像 是个 N x M 矩阵。 N 和 M 为坐标,存储的数值是灰度深浅强度。RGB 为 N x M x 3 的矩阵。N 和 M 为坐标,附带的 3 是 [红,绿,蓝] 三色,数值各取 0-1.0 之间。转换上,如果灰度图像为 1024 x 768 大小,则要建立一个 1024 x 768 x 3 的矩阵。再在每一像素上添上颜色。例如,rgb_image(2, 4, = [0 1 1] %(坐标(2,4)=浅蓝色)
为了进行并行处理。我将512*512 的矩阵分成了64*64 的独立小块,并存至对应的文件中。 for i=1:64:449 for j=1:64:449 y=x(i:i+63,j:j+63); h=y'; a=(i-1)/64+1; b=(j-1)/64+1; sload=['fid=fopen(''x' num2str(a) num2str(b) '.txt'',''wt+'')']; eval_r(sload); fprintf(fid, 'M\t', h); fclose(fid); end end
订阅 TOP