生成直方图对比

# -*- coding:utf-8 -*-
import cv2
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
import sys
plt.rcParams['font.sans-serif'] = ['SimHei']  # 可以plt绘图过程中中文无法显示的问题
def zhi(path):
    # 读取图像
    image = cv.imread(path)
    # 判断图片是否读取成功
    if image is None:
        print('Failed to read apple.jpg.')
        sys.exit()

    # 将图像转为灰度图像
    gray_image = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    # 对图像进行直方图计算
    hist_item = cv.calcHist([gray_image], [0], None, [256], [0, 256])
    # 对直方图进行绝对值求和归一化
    image_L1 = cv.normalize(hist_item, None, 1, 0, cv.NORM_L1)
    # 对直方图进行最大值归一化
    image_Inf = cv.normalize(hist_item, None, 1, 0, cv.NORM_INF)
    # 展示结果
    return image_L1,image_Inf

if __name__ == '__main__':
    x = np.linspace(0, 255, 256, axis=-1)
    x = x.reshape(256, 1)
    path1='F:\yufanhuaziliao\daima\erzi\imag\IMAG\\1_1.png'
    image_L1, image_Inf=zhi(path1)
    # plt.plot(image_L1, label='对直方图进行绝对值求和归一化',color='green')
    # # plt.show()
    plt.plot(image_Inf, label='亮度1',color='blue')
    plt.fill(x, image_Inf, color='blue', alpha=0.5)


    path1 = 'F:\yufanhuaziliao\daima\erzi\imag\IMAG\\1_2.png'
    image_L11, image_Inf1 = zhi(path1)
    # plt.plot(image_L1, label='对直方图进行绝对值求和归一化',color='green')
    # # plt.show()
    plt.plot(image_Inf1, label='亮度2', color='green')
    plt.fill(x, image_Inf1, color='green', alpha=0.5)

    path1 = 'F:\yufanhuaziliao\daima\erzi\imag\IMAG\\1_3.png'
    image_L11, image_Inf1 = zhi(path1)
    # plt.plot(image_L1, label='对直方图进行绝对值求和归一化',color='green')
    # # plt.show()
    plt.plot(image_Inf1, label='亮度3', color='orange')
    plt.fill(x, image_Inf1, color='orange', alpha=0.5)

    path1 = 'F:\yufanhuaziliao\daima\erzi\imag\IMAG\\1_4.png'
    image_L11, image_Inf1 = zhi(path1)
    # plt.plot(image_L1, label='对直方图进行绝对值求和归一化',color='green')
    # # plt.show()
    plt.plot(image_Inf1, label='亮度4', color='Cyan')
    plt.fill(x, image_Inf1, color='Cyan', alpha=0.5)
    path1 = 'F:\yufanhuaziliao\daima\erzi\imag\IMAG\\1_5.png'
    image_L11, image_Inf1 = zhi(path1)
    # plt.plot(image_L1, label='对直方图进行绝对值求和归一化',color='green')
    # # plt.show()
    plt.plot(image_Inf1, label='亮度5', color='red')
    plt.fill(x, image_Inf1, color='red', alpha=0.4)

    plt.legend()
    plt.show()
    cv2.waitKey(0)
    cv2.destroyAllWindows()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值