2019-07-19 22:25:56 wujuxKkoolerter 阅读数 415

对数图像增强

对数图像增强的计算公式如下:
(11-1)s=clog(r+1) s = c \log(r + 1) \tag{11-1}

其中cc为常数

Python实现的代码如下:

def log_enhance(src):
   
    scale = float(np.iinfo(src.dtype).max - np.iinfo(src.dtype).min)
    dst = np.log2(src.astype(np.float32) / scale + 1) * scale
    dst = np.clip(dst,0,255).astype(np.uint8)
    return dst

程序运行结果:

在这里插入图片描述

2019-02-03 14:54:15 qq_42505705 阅读数 1689

本文主要介绍对《数字图像处理》第三章书中示例图片实现 反转变换对数变换以及伽马变换的代码

若要获取更多数字图像处理,python,深度学习,机器学习,计算机视觉等高清PDF以及 更多有意思的 分享,可搜一搜 微信公共号 “分享猿” 免费获取资源。也可扫描下面的二维码关注,期待你的到来~
在这里插入图片描述
图像增强的三类基本函数:线性函数(反转和恒等变换)、对数函数(对数和反对数变换)、幂律函数(n次幂和n次跟变换)

一、反转变换

公式S=L-1-r
在这里插入图片描述
代码实现

import cv2
import numpy as np

img = cv2.imread(r'C:\Users\xxx\Desktop\breast.tif',0)

reverse_img = 255 - img

cv2.imshow('srcimg',img)
cv2.imshow('reverse_img',reverse_img)
cv2.waitKey(0)

下列分别是乳房X射线原始图及用上式给出的反转图像
在这里插入图片描述 在这里插入图片描述
二、对数变换

公式s=clog(1+r)
下图是当c=1时的r与s关系图
在这里插入图片描述
代码实现

import cv2
import math
import numpy as np

def logTransform(c,img):

    #3通道RGB
    '''h,w,d = img.shape[0],img.shape[1],img.shape[2]
    new_img = np.zeros((h,w,d))
    for i in range(h):
        for j in range(w):
            for k in range(d):
                new_img[i,j,k] = c*(math.log(1.0+img[i,j,k]))'''

    #灰度图专属
    h,w = img.shape[0], img.shape[1]
    new_img = np.zeros((h, w))
    for i in range(h):
        for j in range(w):
            new_img[i, j] = c * (math.log(1.0 + img[i, j]))


    new_img = cv2.normalize(new_img,new_img,0,255,cv2.NORM_MINMAX)

    return new_img
    
#替换为你的图片路径
img = cv2.imread(r'C:\Users\xxx\Desktop\Fourier spectrum.tif',0)

log_img = logTransform(1.0,img)
cv2.imshow('log_img',log_img)
cv2.imwrite(r'C:\Users\xxx\Desktop\Fourier spectrum2.jpg',log_img)
cv2.waitKey(0)

备注:当r=255时,s=5.541

下列图像分别是傅里叶频谱和应用上式中的对数变换(c=1)的结果
在这里插入图片描述 在这里插入图片描述
由于对数曲线在像素值较低的区域斜率大,在像素值较高的区域斜率较小,所以图像经过对数变换后,较暗区域的对比度将有所提升。可用于增强图像的暗部细节

三、幂律(伽马)变化

公式:s=cr^γ
其中c、γ 为常数。考虑偏移量上式可写为 s=c(ε+r)^γ
对于不同的 γ 值,s 与 r的关系曲线如下图所示
在这里插入图片描述
伽马变换可以很好地拉伸图像的对比度,扩展灰度级。
由图可知,
当图像的整体灰度偏暗时,选择γ<1,可以使图像增亮;
当图像的整体灰度偏亮时,选择γ>1,可以使图像变暗,
提高图像的对比度,凸显细节。

用于图像获取、打印和显示的各种设备根据幂律来产生响应,用于校正这些幂律响应现象的处理称为伽马校正
例如,阴极射线管(CRT)设备有一个灰度-电压响应,该响应是一个指数变化范围约为1.8~2.5的幂函数。

代码实现

import math
import numpy as np
import cv2

def gammaTranform(c,gamma,image):
    h,w,d = image.shape[0],image.shape[1],image.shape[2]
    new_img = np.zeros((h,w,d),dtype=np.float32)
    for i in range(h):
        for j in range(w):
            new_img[i,j,0] = c*math.pow(image[i, j, 0], gamma)
            new_img[i,j,1] = c*math.pow(image[i, j, 1], gamma)
            new_img[i,j,2] = c*math.pow(image[i, j, 2], gamma)
    cv2.normalize(new_img,new_img,0,255,cv2.NORM_MINMAX)
    new_img = cv2.convertScaleAbs(new_img)

    return new_img

img = cv2.imread(r'C:\Users\xxx\Desktop\gray.jpg',1)

new_img = gammaTranform(1,2.5,img)

cv2.imshow('x',new_img)
cv2.imwrite(r'C:\Users\xxx\Desktop\gray_2.5.jpg',new_img)
cv2.waitKey(0)

下图是用变换s = r^1/2.5 = r^0.4进行伽马校正的示例的结果
在这里插入图片描述
一般,随着设备的不同,伽马值也不同

使用幂律变换进行对比度增强
γ<1 增强亮度
分别是原图,以及c=1时的γ=0.6、0.4、0.3时应用上公示的结果
在这里插入图片描述

γ>1 增强暗度
航拍图像
在这里插入图片描述
下面三幅图片分别是c=1时γ等于3.0、4.0、5.0时应用公式变换的结果
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

搜索公众号“分享猿”,并回复关键词“代码”,获取本文全部代码
留言或者公众号关注我,我们一起分享数字图像处理心得,一起交流学习吧~

2011-09-28 15:58:00 phoenixwsl 阅读数 1648

数字图像处理第三次作业。

1、图像可视性对数增强

为了增强图像的可视信息,对图像中的像素进行基于对数的操作 公式如下:


Ld是显示亮度(我们所要求的值),Lw是真实世界的亮度(图片的当前值),Lmax是场景中的最亮值(图片的最大值)。

公式很简单 实现起来也比较容易。

这个映射保证了不管场景的动态范围是怎样的,其最大值都能映射到1 其他的值能够比较平滑的递增

2、直方图

在灰度图像上进行处理

3、直方图的均衡化

目的是使图片的色彩分布更为均匀,直方图均衡化处理好后,图像的直方图是平直的,即各灰度级具有相同的出现频数

处理方法:

对于对于原直方图中的任意一个灰度级rk,只需将灰度级为[0,rk]以内的所有像素个数的和除以图像的像素总数,就可以得到转换之后的对应灰度级s

下图用了一个简单的例子做了说明:图像大小为64*64 4096个像素,有8个灰度级,

第一行是灰度级,第二行是其概率分布,nk是不同灰度级下的像素数目,第四行是其对应的概率。

第五行是转换后的灰度级概率,舍入后将同一个灰度级下的元素进行归并。


但其实转换后每一个灰度级的概率密度并不相等,这是由于不能保证累加后的像素值是相等的原因。

直方图均衡化实质上是减少图像的灰度级以换取对比度的加大。在均衡过程中,原来的直方图上出现概率较小的灰度级被归入很少几个甚至一个灰度级中,故得不到增强。若这些灰度级所构成的图象细节比较重要,则需采用局部区域直方图均衡化处理。

注意:一般直方图的均衡化是在灰度图像上进行处理的,其次要分成256个bin,这样才能保证图像不失真。

2018-03-13 10:39:00 weixin_30294709 阅读数 6
原文:Win8 Metro(C#)数字图像处理--2.62图像对数增强



[函数名称]

  对数增强      WriteableBitmap LogenhanceProcess(WriteableBitmap src)

        /// <summary>
        /// Logarithm enhancement process.
        /// </summary>
        /// <param name="src">The source image.</param>
        /// <returns></returns>
         public static WriteableBitmap LogenhanceProcess(WriteableBitmap src)////对数增强
         {
             if (src != null)
             {
                 int w = src.PixelWidth;
                 int h = src.PixelHeight;
                 WriteableBitmap srcImage = new WriteableBitmap(w, h);
                 byte[] temp = src.PixelBuffer.ToArray();
                 byte[] tempMask = (byte[])temp.Clone();
                 for (int i = 0; i < tempMask.Length; i++)
                 {
                     temp[i] = (byte)(255.0 / Math.Log(256) * Math.Log(tempMask[i] + 1));
                 }
                 Stream sTemp = srcImage.PixelBuffer.AsStream();
                 sTemp.Seek(0, SeekOrigin.Begin);
                 sTemp.Write(temp, 0, w * 4 * h);
                 return srcImage;
             }
             else
             {
                 return null;
             }
         }

最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载:


posted on 2018-03-13 10:39 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/8554635.html

2014-07-11 15:34:21 mghhz816210 阅读数 22012

空间域增强的第部分:图像反转对数变换幂次变换分段线性变换


(s:现点值,r: 原点值)

图像反转:

    这个无需多说,就是把黑变白,白变黑,拿八位灰度图像来说                                

    表达式:s=255-r

    作用:看清暗色图像中白色和灰色的细节。


对数变换:

    此变换使一窄带低灰度输入图像值映射为一宽带输出值。相对的是输入灰度的高调整值。可以利用这种变换来扩展被压缩的高值图像中的暗像素。相对的是反对数变换的调整值。(这段转自《数字图像处理》(第二版)(冈萨雷斯))

                附:说的太透彻了,找不到比这更好的语言了 

      表达式:s=c log(1+r);

     变换曲线:

     应用:用于对数值范围过大的数据进行调整显示,如傅立叶变换后的图像数据(0-1.5e6).


幂次变换:

    又叫伽玛校正,和对数变换的原理差不多,不多说了,只是参数多了一个,可变宽带的输入像素值范围可选了,把低值带拉伸还是把高值拉伸要看伽马的设定了。

    表达式:伽马变换(这个是图片格式,粘的太丑,不过不影响什么)

变换曲线:

                 一个是伽马等于4,一个是伽马等于0.2;一个拉伸高像素值的范围,一个拉伸低像素值的范围。哪部分的斜率越大,哪部分的拉伸比例就越大。


分段线性变换:

分为:对比拉伸灰度切割位图切割

图:

 位图切割就是比如8位的图像,我把像素点的每一位拿出来做个位平面,然后就有8个位平面了。


以上这几个处理方法都是将固定范围内的像素值的显示范围放大或缩小,让图像更符合人为意愿。

没有更多推荐了,返回首页