关键词:- 对数变换、幂律变换、图像增强、对比度拉伸
数字图像处理 (DIP) 对不同类别的图像执行各种操作,例如图像增强、图像分析、图像压缩、图像变换等。
图像增强用于对图像进行操作,以提取用户识别的所需和重要的关键特征,例如:调整图像的对比度值。
DIP的基本步骤
因此,在本博客中,我们将讨论图像锐化/增强技术。
图像锐化和恢复有助于通过关注已识别的特征、调整明暗区域之间的对比度、减少噪点、升级相机焦距、减少运动模糊等来创建更好的图像。
图像锐化明确用于改善图像描述,例如边界、角落、对比度、边缘、强度等。
以下是一些图像预处理技术,用于通过观察其邻域像素值来修改当前像素的强度值。
对比拉伸称为归一化,用于拉伸强度值的范围以提高图像的对比度。
Python/OpenCV 可以通过使用 min_max 归一化的 cv2.normalize() 方法进行对比度拉伸。
import cv2
import numpy as np
# read image
img = cv2.imread("messi.jpg")
# normalize float versions
norm_img1 = cv2.normalize(img, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
# scale to uint8
norm_img1 = (255*norm_img1).astype(np.uint8)
cv2.imshow('original',img)
cv2.imshow('normalized1',norm_img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像阈值用于将对象分割成两类,即前景和背景。全局图像阈值由 Otsu 方法完成。
阈值类型
cv2.THRESH_BINARY
cv2.THRESH_BINARY_INVY
cv2.THRESH_TRUNCY
cv2.THRESH_TOZEROY
cv2.THRESH_TOZERO_INVY
img
全局阈值
对数变换用于将图像的每个像素值替换为其对数值,以增强较低强度值的对比度。它有助于缩小较亮的像素值范围并扩大暗像素。当需要减少图像的偏度分布以获得更好的解释时,可以应用此转换。
import cv2
import numpy as np
import matplotlib.pyplot as plt
# Read an image
image = cv2.imread('baby.jpg')
# Apply log transformation method
c = 255 / np.log(1 + np.max(image))
log_image = c * (np.log(image + 1))
# Specify the data type so that
# float value will be converted to int
log_image = np.array(log_image, dtype = np.uint8)
# Display both images
plt.imshow(image)
plt.show()
plt.imshow(log_image)
plt.show()
对数变换
幂律变换用于从较亮图像到较暗图像突出显示对象,可以通过以下表达式使用:s = c × r^ γ ,其中 s 和 r 分别是输出和输入图像的像素值,c 是常数值,γ称为伽马值。为了减少不同强度值的计算机显示器显示问题,在此转换中使用了不同的伽马值
import numpy as np
import cv2
# Load the image
img = cv2.imread('baby.jpg')
# Apply Gamma=0.4 on the normalised image and then multiply by scaling constant (For 8 bit, c=255)
gamma_point_four = np.array(255*(img/255)**0.4,dtype='uint8')
# Similarly, Apply Gamma=0.8
gamma_point_eight = np.array(255*(img/255)**0.8,dtype='uint8')
# Display the images in subplots
img3 = cv2.hconcat([gamma_point_four,gamma_point_eight])
cv2.imshow('a2',img3)
cv2.waitKey(0)
希望你喜欢阅读这篇文章,希望它能帮助你了解不同类型的图像增强技术。
【python学习】
学Python的伙伴,欢迎加入新的交流【君羊】:740587468
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料