图像处理:基于直方图矫正的图像色彩均衡

2024-09-07 03:48

本文主要是介绍图像处理:基于直方图矫正的图像色彩均衡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

from itertools import chain
import cv2
import os
import numpy as np
import datetimeclass BrightnessBalance:def __init__(self):passdef arrayToHist(self,gray):'''计算灰度直方图,并归一化:param gray_path::return:'''w,h = gray.shapehist = list(chain.from_iterable(cv2.calcHist([gray],[0],None,[256],[0,256])))hist = np.array(hist)/(w*h)return histdef histMatch(self, gray1, gray2):'''gray2向gray1校准:param image_path1::param image_path2::return:'''if not os.path.exists(image1_path) or not os.path.exists(image2_path):print('image1_path or image2_path is not exist!')returngray2Array = np.array(gray2)hist1 = self.arrayToHist(gray1)hist2 = self.arrayToHist(gray2Array)tmp1 = 0.0tmp2 = 0.0h_acc1 = hist1.copy()h_acc2 = hist2.copy()for i in range(256):tmp1 += hist1[i]tmp2 += hist2[i]h_acc1[i] = tmp1h_acc2[i] = tmp2M = np.zeros(256)for i in range(256):idx = 0minv = 1for j in range(0,len(h_acc1)):if (np.fabs(h_acc1[j] - h_acc2[i]) < minv):minv = np.fabs(h_acc1[j] - h_acc2[i])idx = int(j)M[i] = idxresult = M[gray2Array]return resultdef colors_histMatch(self,image_path1,image_path2):if not os.path.exists(image1_path) or not os.path.exists(image2_path):print('image1_path or image2_path is not exist!')returnimg1 = cv2.imread(image1_path)img2 = cv2.imread(image2_path)result1_chaneel_b = self.histMatch(img1[:, :, 0], img2[:, :, 0])result1_chaneel_g = self.histMatch(img1[:, :, 1], img2[:, :, 1])result1_chaneel_r = self.histMatch(img1[:, :, 2], img2[:, :, 2])result = cv2.merge([result1_chaneel_b,result1_chaneel_g,result1_chaneel_r])return resultif __name__ == '__main__':image1_path = r"D:\CV_Data\n\current.jpg"image2_path = r"D:\CV_Data\n\history.jpg"starttime = datetime.datetime.now()BB = BrightnessBalance()img1 = cv2.imread(image1_path,0)img2 = cv2.imread(image2_path,0)histMatch = BB.histMatch(img1,img2)endtime = datetime.datetime.now()print(endtime - starttime)save_path = image2_path.replace('history.jpg', 'result1.jpg')cv2.imwrite(save_path, histMatch)

 

这篇关于图像处理:基于直方图矫正的图像色彩均衡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143971

相关文章

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww