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

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

相关文章

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

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 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

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论问题和挑战,探索前沿技术。诚邀高校、科研院所、企业等有关方面的专家学者参加会议。 9月13日(周五):签到日 9月14日(周六):会议日 9月15日(周日

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait,能根据用户提供的文本描述,快速生成既忠实于原图又能灵活调整的个性化人像,用户甚至可以通过简单的句子来描述多个不同的人物,而不需要一一指定每个人的位置。这种设计大大简化了用户的操作,提升了个性化生成的效率和效果。 UniPortrait以统一的方式定制单 ID 和多 ID 图像,提供高保真身份保存、广泛的面部可编辑性、自由格式的文本描述,并且无需预先确定的布局。