本文介绍: channels: 如果灰度图它的值就是[0],如果是彩色图像的传入的参数可以是[0][1][2],它们分别对应着BGR。- mask: 掩模图像。统整幅图像直方图就把它为None。但是如果你想统图像某一分的直方图的你就制作一个掩模图像使用它。- images: 原图图像格式为uint8 或 float32。当传入函数应用中括号[]括来例如[img]- histSize: BIN 的数目。- ranges: 像素范围常为[0256]
import cv2 #opencv 读取格式是BGR
import numpy as np
import matplotlib.pyplot as plt #Matplotlib是RGB
%matplotlib inline
def cv_show(img,name):
    cv2.imshow(name,img)
    cv2.waitKey()
    cv2.destroyAllWindows()

cv2.calcHist(images,channels,mask,histSize,ranges)
images: 原图图像格式为uint8 或 float32。当传入函数应用中括号[]括来例如[img]
channels: 如果灰度图它的值就是[0],如果是彩色图像的传入的参数可以是[0][1][2],它们分别对应着BGR。
mask: 掩模图像。统整幅图像的直方图就把它为None。但是如果你想统图像某一分的直方图的你就制作一个掩模图像并使用它。
histSize: BIN 的数目。也应用括号括来
ranges: 像素范围常为[0256] 

 cat.jpg

img = cv2.imread('cat.jpg',0)#0表示灰度hist = cv2.calcHist([img],[0],None,[256],[0,256])
hist.shape
plt.hist(img.ravel(),256);
plt.show()

可视化运行结果

 

直方图均衡化

equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(),256)
plt.show()

 

res = np.hstack((img,equ))
cv_show(res,'res')

 运行结果

 自适应直方图均衡化:

clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
res_clahe = clahe.apply(img)
res = np.hstack((img,equ, res_clahe))
cv_show(res,'res')

运行结果: 

 

 

 

 

原文地址:https://blog.csdn.net/m0_62976848/article/details/134660465

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_28466.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注