订阅
纠错
加入自媒体

python中的图像增强技术

2022-11-07 15:44
磐创AI
关注

关键词:- 对数变换、幂律变换、图像增强、对比度拉伸

数字图像处理 (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 方法完成。

阈值类型

1. cv2.THRESH_BINARY

2. cv2.THRESH_BINARY_INVY

3. cv2.THRESH_TRUNCY

4. cv2.THRESH_TOZEROY

5. cv2.THRESH_TOZERO_INVYimg

全局阈值

对数变换

对数变换用于将图像的每个像素值替换为其对数值,以增强较低强度值的对比度。它有助于缩小较亮的像素值范围并扩大暗像素。当需要减少图像的偏度分布以获得更好的解释时,可以应用此转换。

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)

希望你喜欢阅读这篇文章,希望它能帮助你了解不同类型的图像增强技术。

image.png


       原文标题 : python中的图像增强技术

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号