45. 图像的灰度直方图

2025-06-28  本文已影响0人  大龙10

灰度变换与直方图索引

一、图像直方图

二、函数 cv2.calcHist

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate ]]) → hist

参数说明:

注意:

三、例程

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 1.57 图像的灰度直方图
img = cv2.imread(r"e:/opencv/bgra.png", flags=0)  # flags=0 读取为灰度图像

histCV = cv2.calcHist([img], [0], None, [256], [0, 256])  # OpenCV 函数 cv2.calcHist
histNP, bins = np.histogram(img.flatten(), 256)
print(histCV.shape, histNP.shape)  # histCV: (256, 1), histNP: (256,)

plt.figure(figsize=(10,3))
plt.subplot(131), plt.imshow(img, cmap='gray', vmin=0, vmax=255), plt.title("Original"), plt.axis('off')
plt.subplot(132,xticks=[], yticks=[]), plt.axis([0,255,0,np.max(histCV)])
plt.bar(range(256), histCV[:,0]), plt.title("Gray Hist(cv2.calcHist)")
plt.subplot(133,xticks=[], yticks=[]), plt.axis([0,255,0,np.max(histCV)])
plt.bar(bins[:-1], histNP), plt.title("Gray Hist(np.histogram)")
plt.show()

四、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/121543352
上一篇 下一篇

猜你喜欢

热点阅读