zoukankan      html  css  js  c++  java
  • 【数字图像处理之(四)】用图像增强谈灰度直方图

    灰度直方图

    是灰度级的函数,描写叙述的是图像中该灰度级的像个数或该灰度级像素出现的频率(归一化)


    • 生成并绘制直方图:
    src = imread('Fig0303(a)(breast).tif');
    imshow(src);
    h1 = imhist(src);                      %生成直方图
    figure,imhist(src,255);             %绘制直方图
    
    h2 = imhist(src, 25);                 %生成直方图
    horz = linspace(0, 255, 25);
    figure,bar(horz, h2);                 %绘制条状直方图
    axis([0 255 0 60000]);               %设置坐标轴最大最小值
    set(gca, 'xtick', 0:50:250);          %设置坐标轴的标尺
    set(gca, 'ytick', 0:20000:60000);
    xlabel('灰度级', 'fontsize', 10);  %坐标轴附加图像
    ylabel('灰度值', 'fontsize', 10);
    text(150, 40000, '条形直方图', 'fontsize',15);
    
    h3 = imhist(src, 25);                 %生成直方图
    horz = linspace(0, 255, 25);
    figure,stem(horz, h3, 'fill');      %绘制杆状直方图
    axis([0 255 0 60000]);               %设置坐标轴最大最小值
    set(gca, 'xtick', 0:50:250);         %设置坐标轴的标尺
    set(gca, 'ytick', 0:20000:60000);
    xlabel('灰度级', 'fontsize', 10); %坐标轴附加图像
    ylabel('灰度值', 'fontsize', 10);
    text(150, 40000, '杆状直方图', 'fontsize',15);
    
    h4 = imhist(src);                       %生成直方图
    figure,plot(h4);                         %绘连续直方图
    xlim('auto');                              %自己主动设置坐标轴范围和标尺
    ylim('auto');
    text(150, 40000, '连续直方图', 'fontsize',15);


     
    • 直方图均衡化(可使图像的灰度间距拉开或使灰度分布均匀):
    src = imread('Fig0303(a)(breast).tif');
    result = histeq(src);    %均衡化
    imshow(result);






    • 自适应直方图均衡化:
    src = imread('Fig0303(a)(breast).tif');
    result = adapthisteq(src);%自适应直方图均衡化
    figure, imshow(src);
    figure, imhist(src);
    figure, imshow(result);
    figure, imhist(result);



    • MATLAB函数小结:
    imhist( ):该函数用于获取图像数据直方图。(PS:若没有赋值给左边的变量,该函数将显示一张灰度直方图)
    h1 = imhist( src, n )
    src--输入图像
    n   --灰度级别,默觉得256

    linspace(a, b, n):该函数生成一个(1xn)数组。数据的第一个元素值为a。最后一个元素为b。n是总採样点数。(PS:全部元素的值均匀分布)

    bar(horz, h2):绘制条状直方图,通过horz控制直方图显示的密集程度                 
    horz -- 一个(1xn)数组(跟h2同阶)
    h2    -- 要绘制的直方图

    stem(horz, h3, 'fill'):绘制杆状直方图
    horz -- 一个(1xn)数组(跟h2同阶)
    h2    -- 要绘制的直方图
    'fill'  -- 杆头是否空心

    plot(h4):绘连续直方图


    result = histeq(src);    %获取直方图均衡化后的图像

    result = adapthisteq(src);      %获取直方图自适应均衡化后的图像



  • 相关阅读:
    [已解决] MAVEN安装代码到本地库,安装jar, source, javadoc的方式
    [已解决]Eclipse 插件Maven在使用 add dependency,找不到包,解决办法
    [已解决] windows 下 git 免输密码
    [已解决] windows 80端口被占用
    [已解决]Tomcat启动报 java.net.BindException: Address already in use: JVM_Bind
    [已解决] java.net.InetAddress.getHostName() 阻塞问题
    [已解决] 日常开发中禁用Tomcat自动重启
    [已解决] MyBatis 中bind用法
    [转]SOCKET通信中TCP、UDP数据包大小的确定
    使用beautifulsoup与requests爬取数据
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5153831.html
Copyright © 2011-2022 走看看