请高手帮个忙 我不懂Matlab,想用它处理下图像
程序如下:
>>imshow('D:\1.bmp')
>>figure,imhist('D:\1.bmp')
>>ylim('auto')
>>g=histeq('D:\1.bmp',256);
>>figure,imshow(g)
>>figure,imhist(g)
>>ylim('auto')报下面错误
??? Error: File: C:\Documents and Settings\Wy\桌面\my.m Line: 2 Column: 1
Missing variable or function.感觉图像路径没什么问题,请高手帮忙解决下
程序如下:
>>imshow('D:\1.bmp')
>>figure,imhist('D:\1.bmp')
>>ylim('auto')
>>g=histeq('D:\1.bmp',256);
>>figure,imshow(g)
>>figure,imhist(g)
>>ylim('auto')报下面错误
??? Error: File: C:\Documents and Settings\Wy\桌面\my.m Line: 2 Column: 1
Missing variable or function.感觉图像路径没什么问题,请高手帮忙解决下
解决方案 »
- winsdk里面list control如何知道某一项check框是否勾选上的?
- unsigned char* *RxBuf To CString 的问题
- c++能不能导出导入电脑注册表,
- 谁能发个单文档贝塞尔曲线的源码给我呀!
- 急求VC6.0
- 在服务程序中,如何调用对话框程序EXE文件如下:
- 能帮忙给一个操作存储过程的例子吗?很急,我又从来没写过这样的程序。
- Com中如何给一个结构体传数据??
- 关于暂停的问题!!谢谢!!
- 兄弟们帮忙看看,SetWindowsHookEx的问题,谁知道答案?
- class DLLOPT snmp{}这里 DLLOPT是什么作用?
- 众人感觉 迅雷的传输是用UDP 还是TCP
imshow(img)
figure,imhist(img)
ylim('auto')
g=histeq(img,256);
figure,imshow(g)
figure,imhist(g)
ylim('auto')
??? Attempt to execute SCRIPT image as a function.Error in ==> imshow at 97
hh = image(xdata, ydata, cdata, 'BusyAction', 'cancel', ...
img = imread('D:\1.bmp');
imgGray = rgb2gray(img);如果是黑白,可能是24位黑白
那么
img = img(:,:,1);然后就可以了
%直接读图像Img10_1.bmp,读到tu中
%graydis是原始直方图各灰度级像素个数
%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro
%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标
%new_graydis是统计新直方图各灰度级像素个数
%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro
%计算直方图均衡后的新图new_tu
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all
tu=imread('lena.bmp');
graydis=zeros(1,256);
graydispro=zeros(1,256);
new_graydis=zeros(1,256);
new_graydispro=zeros(1,256);
[h w]=size(tu);
new_tu=zeros(h,w);
%计算原始直方图各灰度级像素个数graydis
for x=1:h
for y=1:w
graydis(1,tu(x,y))=graydis(1,tu(x,y))+1;
end
end
%计算原始直方图graydispro
graydispro=graydis/sum(graydis);
%计算原始累计直方图
for i=2:256
graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);
end
%计算和原始灰度对应的新的灰度t[],建立映射关系
for i=1:256
t(1,i)=floor(254*graydispro(1,i)+0.5);
end
%统计新直方图各灰度级像素个数new_graydis
for i=1:256
new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);
end
%计算新的灰度直方图new_graydispro
new_graydispro=new_graydis./sum(new_graydis);
%计算直方图均衡后的新图new_tu
for x=1:h
for y=1:w
new_tu(x,y)=t(1,tu(x,y));
end
end
figure,imshow(tu);
figure,imshow(new_tu,[]);
figure,imshow(new_tu,[]);%输出图像直方图h=imhist(new_tu)
h1=h(1:10:255);
horz=1:10:255;
stem(horz,h1,'fill')
axis([0 255 0 500])
set(gca,'xtick',[0:10:255])
set(gca,'ytick',[0:20:500])
输出tu(原)图像的直方图正常,但是输出new_tu(变化后)图像时的直方图就不正常了,调了很久都没解决出来,希望哪位好心人耐心看下帮忙解决下