(非直接利用函数)python绘制灰度图像直方图及其均衡化
2018-03-26 11:00
393 查看
由于学习的需要,利用python和opencv实现简单的灰度图直方图绘制及其均衡化 。
代码如下import cv2 as cv import numpy as np from matplotlib import pyplot as plt #画直方图 def zhifangtu(image): a = [0]*256 #创建储存像素数的一维数组 w = image.shape[0]#得到图像宽高 h = image.shape[1] #计算灰度像素数 for i in range(w): for j in range(h): gray = image[i,j] a[gray] += 1 #以灰度为x轴像素数为y轴画直方图 y = a x = [i for i in range(256)] plt.figure() plt.title("zhifangtu") plt.xlabel("Bins") plt.ylabel("Pixels") plt.plot(x,y) plt.xlim([0,256]) return a #返回灰度像素数 #将图像均衡化 def junhenghua(a,image):#入口参数:灰度像素数和图片 b = [0]*256#储存个灰度像素占比数据 c = [0]*256#储存累计分布数据 w = image.shape[0] h = image.shape[1] mn = w*h*1.0 img = np.zeros([w,h],np.uint8)#创建空数组储存均衡化后数据 #计算灰度分布密度 for i in range(len(a)): b[i] = a[i]/mn #计算累计直方图数据 for i in range(len(c)): if i == 1: c[i] = b[i] else: c[i] = c[i-1]+b[i] a[i] = int(255*c[i]) #对各灰度值进行均衡化映射 for i in range(w): for j in range(h): img[i,j] = a[image[i,j]] return img#返回均衡化后图像 image = cv.imread("D:/test/aaa.tif",0)#读取灰度图像 cv.imshow("base",image) a = zhifangtu(image) #画原始图像直方图并得到灰度像素数 b = junhenghua(a,image) #将图像均衡化 cv.imshow('junhenghua',b) zhifangtu(b) #画均衡化后图像直方图 plt.show()原直方图: 均衡化后: 阅读更多
相关文章推荐
- Opencv绘制灰度/彩色图像的直方图及直方图的均衡化实例及源代码
- python数字图像处理(9):直方图与均衡化
- 利用Android的Canvas绘制正弦函数图像
- 利用opencv函数对图像旋转后,按旋转偏移新计算新的图像外接四边形绘制
- 【数字图像处理】图像可视化对数增强 直方图及其均衡化
- 利用R和Octave绘制函数图像和求解方程
- P-2.2.0 用Python绘制函数图像
- openCV—Python(8)—— 图像直方图及其直方图均衡化
- Python进阶(三十八)-数据可视化の利用matplotlib 进行折线图,直方图和饼图的绘制
- [置顶] 利用python进行折线图,直方图和饼图的绘制
- 灰度图像直方图的创建与灰度图像直方图的均衡化[代码与运行结果]
- 利用OpenCV的calcHist绘制灰度直方图、H-S直方图的源码及说明
- Python与图像处理(1):绘制图像,点和线,图像轮廓,直方图
- [计算机视觉] CImg库绘制图像灰度直方图
- python绘制神经网络中的Sigmoid和Tanh激活函数图像(附代码)
- IDL 直接图像法绘制直方图(自定义坐标范围,图名、坐标轴支持中文字符)
- 利用python进行折线图,直方图和饼图的绘制
- 利用Matlab绘制图像中的某一行或者某一列的灰度曲线
- 利用Python-caffe进行图像分类,卷积核的显示,激活值特征图的显示以及全连接层直方图显示
- python绘制神经网络中的ReLU激活函数图像(附代码)