Python图像表征空间频率域处理和模式分析

admin2024-04-03  0

🎯要点

  1. Python空间滤波器:🎯卷积计算实现均值滤波器。🎯非线性中值滤波器。🎯最大值/最小值滤波器。🎯一阶导数滤波器:索贝尔(sobel)滤波器、普鲁伊特(Prewitt)滤波器、坎尼(Canny)滤波器。🎯二阶导数滤波器:拉普拉斯滤波器、高斯拉普拉斯滤波器。🎯弗朗吉(frangi)滤波器。
  2. Python图像增强方法:🎯图像线性逆变换。🎯伽玛校正。🎯对数变换。🎯直方图均衡化。🎯对比度拉伸。🎯sigmoid 校正。🎯局部对比度标准化。
  3. 仿射几何变换代码实现:🎯Python平移、旋转、缩放和插值。
  4. 代码实现傅里叶变换函数:🎯快速傅里叶变换。🎯Python实现低通滤波器二维卷积函数。🎯Python实现巴特沃斯低通滤波器卷积函数。🎯Python实现高斯低通滤波器卷积函数。🎯Python实现二维高通滤波器卷积函数。🎯Python实现巴特沃斯高通滤波器卷积函数。🎯Python实现高斯高通卷积函数。🎯Python实现带通滤波器。
  5. Python图像分割算法:🎯Python大津方法、Renyi基于熵的分割、自适应阈值方法、分水岭分割、Chan-Vese区域分割。
  6. 形态学运算Python实现:🎯二元膨胀、二元腐蚀、灰度膨胀和腐蚀、灰度开运算和闭运算、命中或错过变换、粗化和细化变换。
  7. 图像测量、神经网络、卷积神经网络。

🍇Python 去除椒盐噪声图像增强

图像增强是图像处理领域的一个基本过程,旨在提高图像的感知质量或使图像中的特定特征更加明显。 与图像恢复不同,图像恢复试图通过纠正已知的退化来将图像恢复到其原始形式,图像增强不依赖于对退化过程的详细理解。 相反,它应用更通用的技术来实现视觉上令人愉悦的结果。

技术包括:

  • 去噪/平滑
  • 对比度改善
  • 锐化

图像增强技术的类型:

  • 空间域增强
  • 频域增强
  • 直方图技术
  • 基于 Retinex 理论的增强
  • 色彩校正和增强
  • 边缘增强
  • 基于深度学习的增强

通过去除噪声来提高图像质量是图像处理中的关键步骤,特别是因为噪声会显着降低图像的视觉清晰度。 在图像捕获、传输或存储过程中可能会引入噪声,表现为图像强度的随机变化。 本节应用滤波器来减轻各种类型的噪声(例如高斯噪声、椒盐噪声、散斑噪声、泊松噪声和指数噪声),更深入地研究图像去噪的先进技术。

import numpy as np
import matplotlib.pyplot as plt
from skimage.io import imread
from skimage.color import rgb2gray
from skimage.util import random_noise
from skimage.metrics import peak_signal_noise_ratio as compare_psnr
from scipy.ndimage import uniform_filter, median_filter
def plt_hist(noise, title='Noise Histogram', bins=None):
    plt.grid()
    plt.hist(noise.ravel(), bins=bins, alpha=0.5, color='green')
    plt.tick_params(labelsize=15)
    plt.title(title, size=25)

def plt_images(original_img, noisy_img, denoised_mean_img, denoised_median_img, noise, noise_type):
    fig, axes = plt.subplots(1, 4, figsize=(20, 5))
    ax = axes.ravel()

    ax[0].imshow(original_img, cmap='gray')
    ax[0].set_title('Original', size=20)
    ax[0].axis('off')

    ax[1].imshow(noisy_img, cmap='gray')
    ax[1].set_title(f'Noisy ({noise_type})', size=20)
    ax[1].axis('off')

    ax[2].imshow(denoised_mean_img, cmap='gray')
    ax[2].set_title('Denoised (Mean)', size=20)
    ax[2].axis('off')

    ax[3].imshow(denoised_median_img, cmap='gray')
    ax[3].set_title('Denoised (Median)', size=20)
    ax[3].axis('off')

    plt.figure()
    plt_hist(noise, title=f'{noise_type} Noise Histogram')
    plt.show()

    print(f"PSNR (Original vs Noisy): {compare_psnr(original_img, noisy_img):.3f}")
    print(f"PSNR (Original vs Denoised Mean): {compare_psnr(original_img, denoised_mean_img):.3f}")
    print(f"PSNR (Original vs Denoised Median): {compare_psnr(original_img, denoised_median_img):.3f}")

Loading the image and converting to Gray scale
image_path = 'lena.png'  
original_img = rgb2gray(imread(image_path))

添加噪音用于演示目的

对于每种类型的噪声,我们将其引入原始图像,应用均值滤波器和中值滤波器,然后分析结果。 均值滤波器通过对邻域内的像素值进行平均来平滑图像,而中值滤波器则用其邻域内的强度值的中值替换每个像素的值,这对于对抗椒盐噪声特别有效。

noisy_img = random_noise(original_img, mode='gaussian', var=0.02)

去噪

denoised_mean_img = uniform_filter(noisy_img, size=5)
denoised_median_img = median_filter(noisy_img, size=5)
plt_images(original_img, noisy_img, denoised_mean_img, denoised_median_img, noisy_img-original_img, 'Gaussian')

添加盐和胡椒噪音

noisy_img = random_noise(original_img, mode='s&p', amount=0.05)

盐和胡椒去噪

denoised_mean_img = uniform_filter(noisy_img, size=5)
denoised_median_img = median_filter(noisy_img, size=5)
plt_images(original_img, noisy_img, denoised_mean_img, denoised_median_img, noisy_img-original_img, 'Salt & Pepper')
参阅:亚图跨际
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!