小程序收集箱:批量调节图像曝光度、锐利度、对比度、亮度的demo

news/2024/9/22 19:36:34/

本程序用于批量调节图像曝光度、锐利度、对比度、亮度,可视化进行,方便找到最佳值。这些参数在应用到其他程序时,需根据程序中乘的系数换算,不然得不到理想效果。

#!/usr/bin/python
# -*- coding: utf-8 -*-
# python3.7
# author:FistQ
# Date: 2019/10/11import cv2
import numpy as np
import osdef Contrast_and_Brightness(alpha, beta, img):blank = np.zeros(img.shape, img.dtype)# dst = alpha * img + beta * blankdst = cv2.addWeighted(img, alpha, blank, 1-alpha, beta)return dstdef Img_Adjust(GAMMA,SHARPEN, CONTRAST, BRIGHTNESS,img):kernel = np.array([[0, -1, 0],[-1, SHARPEN, -1],[0, -1, 0]], np.float32)  # 定义一个核dst = Contrast_and_Brightness(CONTRAST, BRIGHTNESS, img)res = cv2.filter2D(dst, -1, kernel=kernel)res = gamma_trans(res, GAMMA)return resdef 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):passif __name__ == '__main__':cv2.namedWindow("demo", 0)cv2.createTrackbar('Gamma', 'demo', 100, 1000, nothing)cv2.createTrackbar('Sharpen', 'demo', 15, 100, nothing)cv2.createTrackbar('Contrast', 'demo', 20, 100, nothing)cv2.createTrackbar('Brightness', 'demo', 6, 100, nothing)data_base_dir = "./images/error"  # 输入文件夹的路径outfile_dir = "./images/out"  # 输出文件夹的路径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:flag = cv2.getTrackbarPos('Key', 'demo')value_of_gamma = cv2.getTrackbarPos('Gamma', 'demo')value_of_gamma = value_of_gamma * 0.01value_of_sharpen = cv2.getTrackbarPos('Sharpen', 'demo')value_of_sharpen = value_of_sharpen * 0.5value_of_contrast = cv2.getTrackbarPos('Contrast', 'demo')value_of_contrast = value_of_contrast * 0.01value_of_brightness = cv2.getTrackbarPos('Brightness', 'demo')value_of_brightness = value_of_brightness* 0.5            # image_gamma_correct = gamma_trans(image, value_of_gamma)image_gamma_correct = Img_Adjust(value_of_gamma,value_of_sharpen, value_of_contrast, value_of_brightness, image)cv2.imshow("demo", image_gamma_correct)k = cv2.waitKey(1)if k == 13:  # 按回车键确认处理、保存图片到输出文件夹和读取下一张图片processed_number += 1# out_img_name = outfile_dir + '//' + "%d.png"%(value_of_gamma*100)out_img_name = outfile_dir + '//'  + "%d_" % (value_of_gamma * 100) + file.strip()cv2.imwrite(out_img_name, image_gamma_correct)print("The number of photos which were processed is ", processed_number)breakelif k == 27:cv2.destroyAllWindows()

效果图如下:
在这里插入图片描述
参考链接:批量调整图片的曝光率


http://www.ppmy.cn/news/289376.html

相关文章

影像质量评估之锐利度--MTF(SFR)

由于最近需要写一个Camera 自动调焦的程式,需要用到MTF(Modulation Transfer Function),其中MTF有很多实现算法,本人目前使用SFR(spatial frequency response)算法衡量影像的锐利度(Sharpness)。SFR数值越大…

转 影像质量评估之锐利度--MTF(SFR)

转载 https://blog.csdn.net/qq61394323/article/details/38454969 影像质量评估之锐利度–MTF(SFR) 2014年08月09日 11:23:05 努力的草根 阅读数:25287  由于最近需要写一个Camera 自动调焦的程式,需要用到MTF(Modu…

智能优化算法改进-K-means聚类种群初始化附Matlab代码

目录 0引言 一、K-means聚类原理 二、K-Means聚类算法步骤 三、K-Means聚类原理图​编辑 四、K-means聚类改进智能优化算法种群初始化效果图 4.1 初始种群数据图 ​4.2 K-means聚类结果图 4.2.1 根据K-means聚类原理聚类 4.2.2 根据MATLAB自带kmeans函数聚类 五、K-…

ch7_1指令系统

计算机硬件与软件之间的接口, 指令系统。 1.机器指令 1.1 指令的格式 指令的格式是什么? 操作码,地址码,寻址方式; 指令的字长,可以分为固定字长,可变字长; 操作码的长度可以是…

「HTML和CSS入门指南」main 标签详解

什么是 main 标签? 在 HTML 中,main 标签用于表示网页或应用程序的主要内容。通常用于包含页面的核心内容,例如文章、产品列表或其他重要信息。 main 标签的基本语法 以下是 main 标签的基本语法: <main><!-- 在这里放置您的内容 --> </main>请注意,m…

Ubuntu20.04 安装 Nvidia GTX 1050 ti GPU 驱动运行Carla详细过程

1. 先检查系统有没有安装好GPU驱动&#xff0c;执行命令&#xff1a; sudo nvidia-smi 如果报错就说明系统没有Nvidia GPU驱动 如果出现以下界面说明驱动安装成功 2.看一下系统根据GPU硬件型号推荐的GPU驱动&#xff0c;执行这条命令&#xff1a; ubuntu-drivers devices &…

CUDA安装教程及调试:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti

写这篇文章主要是针对CUDA调试经验分享&#xff0c;网上可供参考的资料太少了&#xff0c;最后靠自学CUDA官网help文档成功进入global函数断点&#xff0c;感兴趣的继续看下去吧&#xff01; 本人的电脑配置&#xff1a;本机win10vs2013NVIDIA GeForce GTX 1050Ti 1、CUDA加速…

gtx1050ti安装win10和ubuntu16.04双系统

#2020.2.24更新&#xff1a; NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driverr 解决方法 卸载nvida sudo apt-get --purge remove nvidia* sudo apt autoremove sudo apt-get remove --purge nvidia-\*#2020.2.更新&#xff1a; ##一&#xf…