作业帮 > 综合 > 作业

matlab图像处理中矩阵运算与统计

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/29 10:54:14
matlab图像处理中矩阵运算与统计
用Matlab读取图像的时候是将RGB三通道值存储在3个不同的矩阵中.我想要实现下面几种变换.
1、将RGB三个矩阵中的的值统一成0-1的形式(即都除255);
2、对R、G、B三个矩阵中的值进行统计分组(只需知道组内元素的数量),例如R矩阵中分成0-0.1;0.1-0.2 …… 0.9-1.0.这里将得到10个统计量,将10个统计量以行矩阵的形式表示.这样RGB三个矩阵就可以得到含30个元素的行矩阵;
如果方便,请给出代码,
matlab图像处理中矩阵运算与统计
I = imread('lena.jpg');
I = double(I);
In = I / 255; % answer of 1
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
histR = hist(R); % answers of 2
histG = hist(G); % answers of 2
histB = hist(B); % answers of 2
再问: 运行结果不对,histR,G,B 是三个10X12的矩阵数值完全一样的。 以0.1组距为例,0-1形成10个统计数字即a=[x,x,x,x,x,x,x,x,x,x]代表落入0-1 里面10个区间的数值即可。 谢谢~!
再答: 不好意思,之前写错了。 I = imread('board.tif'); I = double(I); In = I / 255; % answer of 1 R = In(:,:,1); G = In(:,:,2); B = In(:,:,3); histR = hist(R(:))'; % answers of 2 histG = hist(G(:))'; % answers of 2 histB = hist(B(:))'; % answers of 2
再问: 不好意思,还是有点问题。比如对这个矩阵用hist进行统计后结果是按理都落在0-0.1应该有72个元素的,但其中的两个0.0745被独立到另外一组了,其余的70个0.0784刚分一起了,不知道是怎么回事。刚用了另外一个8X8矩阵做实验,只有0.5-0.7 三个区间的数值,计算结果居然在9个区间里都有分布,只有一个区间是0分布的,正确结果应该是要在3个区间中有分布,其他区间没有才呀辛苦你了!解决后再追加50
再答: 我懂你的意思了。不好意思。 histR = hist(R(:),.1:.1:1)'; % answers of 2 histG = hist(G(:),.1:.1:1)'; % answers of 2 histB = hist(B(:),.1:.1:1)'; % answers of 2 最后这里这样改应该就是你要的结果了