跟我学Python图像处理丨何为图像的灰度非线性变换

摘要:本文主要讲解灰度线性变换,基础性知识希望对您有所帮助。

本文分享自华为云社区《[Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换》,作者:eastmount 。

成都创新互联主要业务有网站营销策划、网站制作、做网站、微信公众号开发、微信小程序开发H5技术、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都营销网站建设资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包括对数变换和伽马变换。

一.图像灰度非线性变换

图像的灰度非线性变换主要包括对数变换、幂次变换、指数变换、分段函数变换,通过非线性关系对图像进行灰度处理,下面主要讲解三种常见类型的灰度非线性变换。

原始图像的灰度值按照DB=DA×DA/255的公式进行非线性变换,其代码如下:

# -*- coding: utf-8 -*-
import cv2  
import numpyas np  
import matplotlib.pyplotas plt
#读取原始图像
img= cv2.imread('miao.png')
#图像灰度转换
grayImage= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#获取图像高度和宽度
height= grayImage.shape[0]
width= grayImage.shape[1]
#创建一幅图像
result= np.zeros((height, width), np.uint8)
#图像灰度非线性变换:DB=DA×DA/255
for i in range(height):
for j in range(width):
 gray= int(grayImage[i,j])*int(grayImage[i,j]) / 255
 result[i,j]= np.uint8(gray)
#显示图像
cv2.imshow("Gray Image", grayImage)
cv2.imshow("Result", result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

分享文章:跟我学Python图像处理丨何为图像的灰度非线性变换
标题路径:http://ybzwz.com/article/dsogeih.html