帮我看看这段MATLAB程序

[复制链接]
查看11 | 回复2 | 2008-6-12 16:25:11 | 显示全部楼层 |阅读模式
%首先读取图片,显示其灰度直方图:
I=imread('Z:\I1.jpg');%读取退化图像 PS=imread('Z:\I7.jpg');
figure,imshow(I); %显示退化图像
figure,imhist(I); %显示图像的灰度值直方图
%然后进行灰度级线性分段增强:
f0=0;g0=0;
f1=20;g1=100;
f2=100;g2=180;
f3=255;g3=255;
r1=(g1-gO)/(f1-f0));
b1=gO-r1*f0;
r2=(g2-g1)/(f2-f1);
b2=g1-r2*f1;
r3=(g3-g2)/(f3-f2);
b3=g2-r3*f2;
[m,n]=size(I);
X2=double(I); %变换矩阵中的每一个元素
fori=1:m

forj=1:n

f=X2(i,j);

g(i,j)=O;

if(f>=0)&(f=f1)&(f=f2)&(f d:/matlab6p5/toolbox/images/images/private/checkinput (check_attributes)
Function imhist expected its first input argument, I or X,
to be two-dimensional.
Error in ==> D:\MATLAB6p5\toolbox\images\images\private\checkinput.m
On line 37==> check_attributes(A, attributes, function_name, variable_name, ...
Error in ==> D:\MATLAB6p5\toolbox\images\images\imhist.m (parse_inputs)
On line 173==> checkinput(a, 'double uint8 logical uint16', '2d', mfilename, 'I or X', 1);
Error in ==> D:\MATLAB6p5\toolbox\images\images\imhist.m
On line 49==> [a, n, isScaled, top, map] = parse_inputs(varargin{:});
大虾帮忙看看 哪里有问题?
可是 图像必须是 bmp格式???黑白的图像用 jpg 格式 不可以么???

回复

使用道具 举报

千问 | 2008-6-12 16:25:11 | 显示全部楼层
jpeg文件读进来是三维矩阵,第三维是RGB值你把它转换成2维矩阵就可以了另外有些语法错误,比如只需要1个end
回复

使用道具 举报

千问 | 2008-6-12 16:25:11 | 显示全部楼层
需要将彩色图编程灰度图IY = rgb2ycbcr(I);J=IY(:,:,1);之后对J做处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行