python实现灰度图像拉伸

 时间:2026-02-14 02:10:24

1、灰度拉伸是一种简单的线性运算。经过变换后使得灰度布满整个灰度等级范围。

为了把不同图像的灰度值映射到0-255范围内,常见的方法有:

python实现灰度图像拉伸

python实现灰度图像拉伸

2、处理过程如下:

import cv2 as cv

import numpy as np

from matplotlib import pyplot as plt

image = cv.imread('c:\\meiping1.png')

imgGray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)

cv.imshow('imgGray', imgGray)

python实现灰度图像拉伸

python实现灰度图像拉伸

3、rows, cols = imgGray.shape

reshapeGray = imgGray.reshape(rows * cols)

print(reshapeGray)

reshapeGrayList = reshapeGray.tolist()

通过.tolist() 转换成列表 方便后面求最大灰度 和最小灰度

python实现灰度图像拉伸

4、A = min(reshapeGrayList)

B = max(reshapeGrayList)

1)方法一

Gxy = (255 / (B - A)) * abs(imgGray - A)

print('A = %d,B = %d' % (A, B))

python实现灰度图像拉伸

5、2)另一种方法 

MAX = 255

MIN = 0

Gxy = (imgGray - A) / (B - A) * (MAX - MIN) + MIN

区别在gxy 其他不变!

python实现灰度图像拉伸

6、result = np.uint8(Gxy )

cv.imshow('imgGray', imgGray)

print(imgGray)

cv.imshow('result', result)

hist = cv.calcHist([imgGray],

    [0],    None,     [256],     [0.0,255.0]) 

hist1 = cv.calcHist([result],

    [0],     None,     [256],     [0.0,255.0]) 

plt.plot(hist)

plt.show()

plt.plot(hist1)

plt.show()

cv.waitKey()

cv.destroyAllWindows()

python实现灰度图像拉伸

python实现灰度图像拉伸

7、小结:

1)2种方法原始图和结果图对比基本亮度或者对比度提高了。图片更便于辨识度提高。

2)直方图也类似的。

3)灰度转一维列表 tolist()

python实现灰度图像拉伸

python实现灰度图像拉伸

  • visio2022新增功能
  • 遇见梦游的人应该怎么办?
  • winform中获取路径
  • ASP网站源代码放在本地做测试(WIN XP安装IIS)
  • matlab如何用模拟输入解算姿态角
  • 热门搜索
    军长是什么级别 dw是什么意思 脖子后面有痣代表什么 四书五经指的是什么书 6217开头是什么银行 僭越的意思是什么 圆脸适合什么发型女 dnf手游什么时候上线 提拉米苏是什么 网络与新媒体专业学什么