依据作用域的不同,图像增强分为空域内处理和频域内处理;
- 空域内处理是直接对图像进行处理,主要有灰度变换方法和直方图方法等。通过调节灰度图像的明暗对比度,使得图像变得更加清晰。直方图均衡化、直方图规定化、线性滤波、非线性滤波等。
- 频域内处理是在图像的某个变换域内,对图像的变换系数进行运算,然后通过逆变换获得图像增强效果。通过傅里叶变换将图像从空间域变换到频域,在频域进行滤波,然后再通过傅里叶反变换到空间域。频域滤波主要包括:低频滤波、高频滤波、带阻滤波器、同态滤波等。
- 新的图像增强方法:模糊技术、小波变换等
环境:python3.6、Pycharm、Opencv、matplotlib
测试用图像(密码1234)百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1uFdLfs-Jml6nZokkPdnuug
?
1.????????图像读取及显示:?
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import cv2
#利用CV2读取文件,第一个变量是文件名,第二个变量表示读取文件的形式
image_0 = cv2.imread('couple.tiff',cv2.IMREAD_GRAYSCALE)
plt.subplot(121)
plt.imshow(image_0)
plt.subplot(122)
#后面的参数是为了显示灰度图像,官网有介绍
plt.imshow(image_0,vmin=0,vmax=255,cmap='gray')
plt.show()
?
2.???????? 空域内增强
2.1? ? ? ? 灰度变换增强
灰度变换增强是在空间域内对图像进行增强的一种简单而有效的方法,不改变原图中像素的位置,只改变像素的灰度值,并逐点进行。依据变换方式,分为线性变换、分段线性和非线性。
进行灰度变换,首先要获取图像的直方图。
matplotlib直方图函数hist,
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import cv2
#利用CV2读取文件,第一个变量是文件名,第二个变量表示读取文件的形式
image_0 = cv2.imread('couple.tiff',cv2.IMREAD_GRAYSCALE)
plt.subplot(121)
#后面的参数是为了显示灰度图像,官网有介绍
plt.imshow(image_0,vmin=0,vmax=255,cmap='gray')
#转化为矩阵并拉平
img_np = np.array(image_0).flatten()
plt.subplot(122)
plt.hist(x=img_np,bins=255)
plt.show()
2.1.1?????????线性变换:
?
|