栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

生成直方图对比

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

生成直方图对比

# -*- 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:yufanhuaziliaodaimaerziimagIMAG\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:yufanhuaziliaodaimaerziimagIMAG\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:yufanhuaziliaodaimaerziimagIMAG\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:yufanhuaziliaodaimaerziimagIMAG\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:yufanhuaziliaodaimaerziimagIMAG\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()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号