opencv-批量调整图片的曝光率

#--coding:utf-8--
import cv2
import numpy as np
import os
 
def gamma_trans(img,gamma):#gamma函数处理
    gamma_table=[np.power(x/255.0,gamma)*255.0 for x in range(256)]#建立映射表
    gamma_table=np.round(np.array(gamma_table)).astype(np.uint8)#颜色值为整数
    return cv2.LUT(img,gamma_table)#图片颜色查表。另外可以根据光强(颜色)均匀化原则设计自适应算法。
def nothing(x):
    pass
 
cv2.namedWindow("demo",0)#将显示窗口的大小适应于显示器的分辨率
cv2.createTrackbar('Value of Gamma','demo',100,1000,nothing)#使用滑动条动态调节参数gamma
 
data_base_dir="C:\\Users\\HUANG\\Desktop\\pict"#输入文件夹的路径
outfile_dir="C:\\Users\\HUANG\\Desktop\\pictout"#输出文件夹的路径
processed_number=0#统计处理图片的数量
print "press enter to make sure your operation and process the next picture"
 
for file in os.listdir(data_base_dir):#遍历目标文件夹图片
    read_img_name=data_base_dir+'//'+file.strip()#取图片完整路径
    image=cv2.imread(read_img_name)#读入图片
 
    while(1):
        value_of_gamma=cv2.getTrackbarPos('Value of Gamma','demo')#gamma取值
        value_of_gamma=value_of_gamma*0.01#压缩gamma范围,以进行精细调整
        image_gamma_correct=gamma_trans(image,value_of_gamma)#2.5为gamma函数的指数值,大于1曝光度下降,大于0小于1曝光度增强
        cv2.imshow("demo",image_gamma_correct)
        k=cv2.waitKey(1)
        if k==13:#按回车键确认处理、保存图片到输出文件夹和读取下一张图片
            processed_number+=1
            out_img_name=outfile_dir+'//'+file.strip()
            cv2.imwrite(out_img_name,image_gamma_correct)
            print "The number of photos which were processed is ",processed_number
            break

在这里插入图片描述
在这里插入图片描述

图为处理前后的结果,图片效果大为改善,处理后的图片颜色更加均匀和丰富。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/484795.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年最新阿里云服务器价格表(配置价格+带宽价格+磁盘)

2024年腾讯云服务器优惠价格表,一张表整理阿里云服务器最新报价,阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单,大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

WindowsServer2008 安装

一、镜像包 链接:https://pan.baidu.com/s/1t4ju_NN2Od4_1HXeWimaPw?pwd58uq 提取码:58uq 二、安装步骤 第一步:点击创建新的虚拟机 第二步:点击下一步 ( 可以选典型,也可以选择自定义) 第…

JavaScript基础知识汇总【全!】

JavaScript 基础 JavaScript 运行在客户端的脚本语言,不需要编译,由js解释器(js引擎)逐行解释执行。Node.js也可以用于服务器端编程。JavaScript组成: ECMAScript(JavaScript语法)、DOM(文档对象模型)访问HTML文档的所有元素、BOM(浏览器对象模型)它使J…

LeetCode-热题100:42. 接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入: height [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 解释: 上面是由数组 [0,1,0,2,1,…

定时器及其简单使用

定时器及其简单使用 文章目录 定时器及其简单使用ARM32单片机定时器定时器原理系统主频与定时时间的关系定时器计时上限预分频器 基于定时器应用配置Timer.cPSC、CAR减1原因 PWM什么是PWM?如何生成PWM?PWM输出使用PWM模式有效电平定时器可以输出几个通道的PWM&…

JUC(二)

1、wait notify Owner 线程发现条件不满足,调用 wait 方法,即可进入 WaitSet 变为 WAITING 状态 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用 …

什么是Linux?它与其他操作系统有何区别?

什么是Linux?它与其他操作系统有何区别? 什么是Linux?它与其他操作系统有何区别?摘要引言正文内容了解LinuxLinux与其他操作系统的区别开放性多样性安全性 🤔 QA环节小结 参考资料表格总结总结未来展望 博主 默语带您 …

超高并发下Redis热点数据风险破解

1 介绍 作者是互联网一线研发负责人,所在业务也是业内核心流量来源,经常参与 业务预定、积分竞拍、商品秒杀等工作。 近期参与多场新员工的面试工作,经常就 『超高并发场景下热点数据』 可用性保障与候选人进行讨论。 本文聚焦一些关键点技术进行讨论,并总结一些热点场景…

Apache HTTP服务器(Linux离线编译安装)

Apache HTTP服务器(Linux离线编译安装) Apache是普通服务器,本身只支持html即普通网页。可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。 Apache和Tomcat都可以做为独立的w…

12 Games101 - 笔记 - 几何(网格处理)、阴影图

12 几何(网格处理)、阴影图 曲面细分 曲面细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,使模型越来越光滑,提高渲染效果。 Loop细分 Loop细分是指Loop提出来的细分规则,只能针对于三角…

【Canvas与艺术】暗蓝网格汽车速度仪表盘

【关键点】 采用线性渐变色&#xff0c;使上深下浅的圆有凹下效果&#xff0c;使上浅下深的圆有凸起效果&#xff0c;两者结合就有立体圆钮的感觉。 【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type&quo…

计算联合体union的大小

一&#xff1a;联合类型的定义 联合也是一种特殊的自定义类型&#xff0c;这种类型定义的变量也包含一系列的成员&#xff0c;特征是这些成员公用同一块空间&#xff08;所以联合也叫共用体&#xff09; 比如&#xff1a;共用了 i 这个较大的空间 二&#xff1a; 联合的特点 …

matlab实现神经网络检测手写数字

一、要求 1.计算sigmoid函数的梯度&#xff1b; 2&#xff0e;随机初始化网络权重&#xff1b; 3.编写网络的代价函数。 二、算法介绍 神经网络结构&#xff1a; 不正则化的神经网络的代价函数&#xff1a; 正则化&#xff1a; S型函数求导&#xff1a; 反向传播算法&…

阿里云服务器价格表2024,最新报价2核2G/2核4G/4核8G/8核16G/16核32G

2024年腾讯云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

项目管理证书有何用?这些PMP考试机会一定要抓住

项目管理证书有何用&#xff1f;这些PMP考试机会一定要抓住&#xff01; PMP认证的中文全称是“项目管理专业人士资格认证”&#xff0c;是目前国际上声誉较高并且含金量比较高的项目管理证书之一&#xff0c;本人有幸考过&#xff0c;也通过PMP认证成功转岗&#xff0c;应该也…

力扣刷题之21.合并两个有序链表

仅做学习笔记之用。 题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xf…

进程和线程,线程实现的几种基本方法

什么是进程&#xff1f; 我们这里学习进程是为了后面的线程做铺垫的。 一个程序运行起来&#xff0c;在操作系统中&#xff0c;就会出现对应的进程。简单的来说&#xff0c;一个进程就是跑起来的应用程序。 在电脑上我们可以通过任务管理器可以看到&#xff0c;跑起来的应用程…

几个简单的参数,实现计算特征向量的余弦相似度(java实现,纯手撸)

几个简单的参数&#xff0c;实现计算特征向量的余弦相似度&#xff08;java实现&#xff0c;纯手撸&#xff09; 太狂喽&#xff01;突然高级起来&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&#x1f9e0;&am…

基于图的在线社区假新闻检测建模

论文原文&#xff1a;Graph-based Modeling of Online Communities for Fake News Detection 论文代码&#xff1a;GitHub - shaanchandra/SAFER: Repository containing the official code for the paper Graph-based Modeling of Online Communities for Fake News Detectio…

这个国产原型设计工具,建议PM新人一定要用!

Hello小伙伴们&#xff01;我是榛妮&#xff0c;原BAT大厂女产品经理一枚&#xff0c;目前在香港创业。 一转眼&#xff0c;做产品经理已经8年&#xff0c;想想入行时的种种往事&#xff08;尴尬情况&#xff09;&#xff0c;至今仍然历历在目。 说起刚入行时遇到的那些问题&a…
最新文章