混合空间增强

  混合图像增强是一种图像处理技术,用于在不损失图像细节的情况下增强图像的对比度和亮度。它通常通过将图像拆分成多个通道,然后对每个通道进行独立处理来实现。

  综合利用平滑滤波,锐化滤波,灰度拉伸等技术对图像进行处理,得到更为理想的效果。

  这里使用人体骨骼扫描图像来说明。具体流程如上图,由于人体全身骨骼扫描图像灰度动态范围很窄,并且有很大的噪声内容,使用单一滤波对其增强效果一般。具体作用如图:

import numpy as np
from skimage import io, filters
from matplotlib import pyplot as plt


# 空间滤波
def corre12d(img, window):
    m = window.shape[0]
    n = window.shape[1]
    # 边界通过0灰度值填充
    img1 = np.zeros((img.shape[0] + m - 1, img.shape[1] + n - 1))
    img1[(m - 1) // 2:(img.shape[0] + (m - 1) // 2), (n - 1) // 2:(img.shape[1] + (n - 1) // 2)] = img
    img2 = np.zeros(img.shape)
    for i in range(img2.shape[0]):
        for j in range(img2.shape[1]):
            tmp = img1[i:i + m, j:j + n]
            img2[i, j] = np.sum(np.multiply(tmp, window))
    return img2


I = io.imread("I3.jpg", as_gray=True)
# 拉普拉斯变换
win = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])
I_lap = corre12d(I, win)
I_lap = 255 * (I_lap - I_lap.min()) / (I_lap.max() - I_lap.min())
# 相加得锐化增强图
I_lap_enhance = I + I_lap
# sobel处理
I_sobel = filters.sobel(I)
# 5*5均值滤波器
win_mean = np.ones((5, 5)) / (5 ** 2)
I_sobel_mean = corre12d(I_sobel, win_mean)
# 相乘得到掩蔽图像
I_mask = I_lap_enhance * I_sobel_mean
# 相加得到锐化增强
I_sharp_enhance = I + I_mask
# 进行灰度幂律变换
I_enhance = I_sharp_enhance ** 0.5
# 显示
I_list = [I, I_lap, I_lap_enhance, I_sobel, I_sobel_mean, I_mask, I_sharp_enhance, I_enhance]

i = 0
for grayI in I_list:
    i = i + 1
    plt.subplot(2, 4, i)
    plt.axis('off')
    plt.title(i)
    plt.imshow(grayI, cmap='gray')
plt.show()

 

从左到右,从上到下依次是:

 1:原始图像:

 2:1拉普拉斯变化后:

   图像全身骨骼扫描,图2为原始图像拉普拉斯变换后的结果,细节信息丰富,同时噪音变多。

 3:原始图像与拉普拉斯变换后图像相加得到拉普拉斯锐化增强图像:

 

 

4:原始图像Sobel处理 :

 

图4为原始图像经过Sobel算子处理后结果,边缘信息丰富。

 5:均值滤波对4进行平滑:

 

图4进行空间平滑滤波得到图5,保留图像边缘信息,同时减小了噪声。

 6:3*5得到的掩蔽图像:

 

将图3与图5相加得到图6,发现图6的强边缘优势和可见噪声相对减少。

7:原图与掩蔽图像相加得到的锐化增强图像:

 

 图像的大部分细节更清晰。

8:对7进行灰度幂律变换得到最终结果:

 

 图8进行幂律变换后增大了一些噪声,但同时人体结构更加清晰完整,人体轮廓清晰度也有一定提高。

 上图更能直观地观察到图像变换后的差异。

  

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值