数字图像处理---直方图均衡化

    xiaoxiao2023-10-28  33

    直方图均衡化

    很多博客都是讲的理论以及opencv中的函数的使用,并没有具体的阐述函数的基本写法,小编给大家带来具体的函数实现方法

    import cv2 as cv G=[0 for k in range(256)]#用于存取相应灰度级的个数 balance=[0 for k in range(256)]#用于存取均衡化相应灰度级的变化 src=cv.imread("H:\\tupian\\timg.bmp",0) size=src.shape cv.imshow("42",src) for i in range(size[0]): for j in range(size[1]): G[src[i,j]]=G[src[i,j]]+1#读取相应灰度级的个数 for k in range(256): if k>1: balance[k]=balance[k-1]+((255*G[k])/(size[0]*size[1]))#应用灰度级均衡化公式 else: balance[k]=(255*G[k])/(size[0]*size[1]) for i in range(size[0]): for j in range(size[1]): k=0 for k in range(256): if src[i,j]==k: src[i,j]=balance[k]#对相应灰度级进行均衡化之后的赋值 break cv.imshow("43",src) cv.imwrite("H:\\tupian\\changetimg.bmp",src)#将获取的图片进行保存 cv.waitKey(0)

    效果图对比

    最新回复(0)