• 图像增强的点运算(一)


    % 图像增强算法并不能增加原始图像的信息,而是通过某种技术手段有选择地突出对某一具体应用价值的信息
    
    %灰度线性变换
    %1:全域线性变换,假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至
    % [c,d],则线性变换表达式为: g(x,y)=[(d-c)/(b-a)]*(f(x,y)-a)+c
    %采用线性变换对图像每一个像素灰度作线性拉伸呢,可有效改善图像视觉效果
    %可以改变真个图像的整体的灰度效果
    mimg=imread("pout.tif");%这个是程序自带的图片
    subplot(221);imshow(mimg);
    subplot(223);imhist(mimg);%imhist展示直方图
    mimg=double(mimg);
    va=min(min(mimg));%因为是二维所以需要两个min,求出二维数组中的最小值,
    % 单独一个min求出的是一个数组,数组元素是原先二维数组每一列的最小值
    vb=max(max(mimg));
    vc=0.0;
    vd=255.0;
    mimg1=(vd-vc)/(vb-va)*(mimg-va)+vc;
    mimg1=uint8(mimg1);
    subplot(222);imshow(mimg1);
    subplot(224);imhist(mimg1);
    
    %反相变换。也就是将白的变成黑的,将黑的变成白的
    a=imread('pout.tif');
    b=255-a;
    figure;
    subplot(121),imshow(a);
    subplot(122),imshow(b);
    
    
    %2:分段线性变换。为了突出感兴趣的目标或灰度空间,相对抑制那些不感兴趣的灰度区间
    %3段公式:
    %g(x,y)=   c/af(x,y)  0<=f(x,y)<a
    %        [(d-c)/(b-a)][(f(x,y))-a]+c   a<=f(x,y)<b
    %       [(Mg-d)/(Mf-b)][f(x,y)-b]+d     b<=f(x,y)<=Mf
    % 削波,可以看作是上述的一个特例。例如,就是将其中第1段置为0,第三段置为255,只有中间一段有一个变换的范围
    % 阈值化,可以看做是削波的一个特例,就是其中只有两部分,一个全为0,另一个全为255
    
    
    
    % 3:对数变换,一般表达式  g(i,j)=a+ln[f(i,j)+1]/(blnc)
    %可以使用更简化的形式   F=log(1+F)  
    % matlab中,自然对数 log(x)    以10为底 log10(x)  以N为底longN(x)
    % 应用:将变化范围较大的灰度级压缩到较小的范围内。增强较暗区的对比,减弱较亮区的对比
    % 这是因为,log之后再归一化,那么原先比较亮的地方可能就会变为比较暗的区域,这根log的图线形状有关
    
    
    
    % 4:指数变换。可以对图像的高灰度区给予较大的拉伸。
    % 一般表达式 g(i,j0=b^(c[f(i,j)-a])-1
    %其中伽马变换:g(i,j)=cf(i,j)^r
    % r<1:将增强教案区域的对比,减弱较亮区域的对比。其实也就是让图像变亮
    % r>1与上面相反
    
    
    %5:直方图均衡
    % 一幅图像的像素若占有全部的灰度级且分布均匀,就能够具有高对比度
    % 灰度级变换,新图像中每个店的灰度s是改点原始灰度r的变换的结果。s=T(r)
    % 基本思想:把原始图的直方图变换为均匀分布的形式(对再图像中像素个数多的灰度级进行展宽,
    % 而对像素个数少的灰度级进行缩减),这样增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果
    i=imread("pout.tif");
    j=histeq(i);%这个函数就是直方图均衡化的函数
    subplot(221),imshow(i);
    subplot(222),imshow(j);
    subplot(223),imhist(i);
    subplot(224),imhist(j);
    

      


    作者:孙建钊
    出处:http://www.cnblogs.com/sunjianzhao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    字符串截取例子 大小写转换 拼接例子 把oc转成c语言
    字符串比较 是否相同 大小 创建字符串 例子
    数组于字典:把多个字典放到数组中
    考核7
    Delphi 单元不能被循环引用
    Delphi ADOQuery无法更新定位行问题(其它数据库访问控件类似)
    SQL远程服务器操作数据
    s​p​c​o​m​m​属​性​详​解
    dxSkinController动态调入皮肤
    RegisterClass与GetClass
  • 原文地址:https://www.cnblogs.com/sunjianzhao/p/13950815.html
Copyright © 2020-2023  润新知