matlab图像直方图均衡化的编程有一点小问题~能帮忙解决么~

>> I=imread('A.jpg');
>> subplot(131);
>> imshow(I);title('原始图像');
>> J=imadjust(I,[0.2 0.8],[]);
>> subplot(132);
>> imshow(J);title('对比度调整');
>> H=histeq(I,32);
??? Error using ==> iptcheckinput
Function HISTEQ expected its first input, I, to be two-dimensional
>> I=imread('A.jpg');
>> I=rgb2gray(I);输入完第二行出现找不到指定模块是什么情况~

直接运行这个把
clear all
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('s7.jpg'); %读入JPG彩色图像文件
figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图');

%二,绘制直方图
[m,n]=size(PS); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure(1);subplot(2,2,2);bar(0:255,GP,'g') %绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i); %计算Sk
end
end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率
end
figure(1);subplot(2,2,4);bar(0:255,GPeq,'b') %显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%四,图像均衡化
PA=PS;
for i=0:255
PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素
end
figure(1);subplot(2,2,3);imshow(PA) %显示均衡化后的图像
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-14
你是说那句话后出现找不到指定模块?追问

输入完I=rgb2gray(I);按回车就显示弹出对话框找不到指定模块

相似回答