请高手帮个忙 我不懂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.感觉图像路径没什么问题,请高手帮忙解决下 

解决方案 »

  1.   

    img = imread('D:\1.bmp');
    imshow(img) 
    figure,imhist(img) 
    ylim('auto') 
    g=histeq(img,256); 
    figure,imshow(g) 
    figure,imhist(g) 
    ylim('auto') 
      

  2.   

    刚又运行了一下,现在报下面的错误了,已经生成了一个img距阵了
    ??? Attempt to execute SCRIPT image as a function.Error in ==> imshow at 97
    hh = image(xdata, ydata, cdata, 'BusyAction', 'cancel', ...
      

  3.   

    你的图像时彩色还是黑白的?如果是彩色,那应该要先
    img = imread('D:\1.bmp');
    imgGray = rgb2gray(img);如果是黑白,可能是24位黑白
    那么
    img = img(:,:,1);然后就可以了
      

  4.   

    前面的问题已经解决了非常感谢4楼和5楼的高手%函数功能,对图像进行直方图均衡 
    %直接读图像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(变化后)图像时的直方图就不正常了,调了很久都没解决出来,希望哪位好心人耐心看下帮忙解决下