图像增强:直方图均衡化(python程序)

import cv2
import numpy as np
import sys
import matplotlib.pyplot as plt


def zhifangtu_zhengguihua(image,a):
    Imax=np.max(image)
    print(Imax)
    Imin=np.min(image)
    #要输出的最大最小灰度值 print("Omax", Omax)
    print("Imax", Imax)
    Omin,Omax=0,255
    a=float(Omax-Omin)/(Imax-Imin)
    b=Omin-a*Imin
    O=a*image+b
    #数据类型转换
    O=O.astype(np.uint8)
    #显示原图与处理后的图
    print("a",a)
    print("Omax", Omax)
    print("Imax", Imax)
    print("Omin", Omin)
    print("Imin", Imin)
    return O



if __name__=='__main__':   ##启动语句
    a = cv2.imread('D:/5.png', cv2.IMREAD_UNCHANGED)  # 路径名中不能有中文,会出错,cv2.
    image1 = cv2.split(a)[0]  # 蓝
    image2 = cv2.split(a)[1]  # 绿
    image3 = cv2.split(a)[2]  # 红
    print(image1)
    image1 = zhifangtu_zhengguihua(image1, 4)
    image2 = zhifangtu_zhengguihua(image2, 4)
    image3 = zhifangtu_zhengguihua(image3, 4)
    merged = cv2.merge([image1, image2, image3])
    cv2.imshow("原图", a)
    cv2.imshow("增强后图", merged)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

图像增强:直方图均衡化(python程序)_第1张图片

你可能感兴趣的:(图像处理,python,opencv)