在做检测过程中发现光照对于检测的精度影响很大,为了不增加采集标注数据工作量,增加了光照数据集来增强检测效果。
代码1:选取需要光照增强的区域,直接将像素值增加到240-255之间。
import cv2
import matplotlib.pyplot as plt
import random
img = cv2.imread('000100000910000000098.jpg')
h,w,c = img.shape
print(h,w)
start_x = 510
start_y = 1000
for i in range(200):
for j in range(300):
if img[start_x+i,start_y+j][0] > 40:
a = random.randint(250,255)
b = random.randint(250,255)
c = random.randint(250,255)
img[start_x+i,start_y+j][0] = a
img[start_x+i,start_y+j][1] = b
img[start_x+i,start_y+j][2] = c
cv2.imwrite('test.jpg', img)
plt.imshow(img)
plt.show()
代码2:以图片为圆心,根据像素点与圆心的距离来进行不同程度的光照增强。
#coding:utf-8
import cv2
import math
import numpy as np
import matplotlib.pyplot as plt
#读取原始图像
img = cv2.imread('000100000910000000098.jpg')
#获取图像行和列
rows, cols = img.shape[:2]
#设置中心点
centerX = rows / 2
centerY = cols / 2
print (centerX, centerY)
radius = min(centerX, centerY)
print (radius)
#设置光照强度
strength = 200
#图像光照特效
for i in range(rows):
for j in range(cols):
#计算当前点到光照中心距离(平面坐标系中两点之间的距离)
distance = math.pow((centerY-j), 2) + math.pow((centerX-i), 2)
#获取原始图像
B = img[i,j][0]
G = img[i,j][1]
R = img[i,j][2]
if (distance < radius*radius):
#按照距离大小计算增强的光照值
result = (int)(strength*( 1.0 - math.sqrt(distance) / radius ))
B = img[i,j][0] + result
G = img[i,j][1] + result
R = img[i,j][2] + result
#判断边界 防止越界
B = min(255, max(0, B))
G = min(255, max(0, G))
R = min(255, max(0, R))
img[i,j] = np.uint8((B, G, R))
else:
img[i,j] = np.uint8((B, G, R))
#显示图像
cv2.imwrite('test.jpg', img)
plt.imshow(img)
plt.show()
在做检测过程中发现光照对于检测的精度影响很大,为了不增加采集标注数据工作量,增加了光照数据集来增强检测效果。代码1:选取需要光照增强的区域,直接将像素值增加到240-255之间。import cv2import matplotlib.pyplot as pltimport randomimg = cv2.imread('000100000910000000098.jpg')h,w,c = img.shapeprint(h,w)start_x = 510start_y = 1000f
1.暗通道图像去雾算法:何恺明的暗通道先验(dark channel prior)去雾算法是计算机视觉界去雾领域很有名的算法。2.光照不均匀校正:本实验使用动态阈值算法进行光照不均匀校正,该方法属于自动白平衡算法,参考论文
是《A Novel Automatic White Balance Method For Digital Still Cameras》。算法分为两个步骤:白点检测和白点调整。
******不改变原始xml的一些数据增强方法 type 1-10*******
把增强后的图像和xml一起放入新的文件夹
rootpath:picture_xml原始路径
savepath:pict
基于以下论文,通过光照图估计实现两种低光图像增强技术的 Python 实现:
稳健曝光校正的双光照估计 []
LIME:通过照明图估计进行低光图像增强 []
这两种方法都基于 retinex 建模,旨在通过保留图像的突出结构来估计光照图,同时去除多余的纹理细节。 为此,两篇论文都使用了相同的优化公式(参见参考资料)。 与第二篇论文(以下称为 LIME)相比,第一篇论文(以下称为 DUAL)引入的新颖性在于对原始图像及其倒置版本的该映射的估计,它允许校正曝光不足和过度曝光图像的暴露部分。
此存储库中实现的代码允许使用这两种方法,可以从脚本参数中轻松选择。
这个实现在python>=3.7上运行,使用pip安装依赖:
pip3 install -r requirements.txt
使用demo.py脚本来增强您的图像。
usage: demo.py
文章目录致谢论文原理工程实现视频应用Acknowledge
这学期有幸参加学习学校韩宇星教授的 数字图像工程(全英) 课程,课程最后给了1篇paper①,是基于去雾算法的低光照图像增强算法,本人觉着非常厉害,非常感谢老师提供这篇论文,有兴趣的大伙可以一起学习一下。
① Dong X, Wang G, Pang Y, et al. Fast efficient algorithm for e...
介绍的是一种比较实用并且去阴影效果很好的方法,选自2004年Tao的一篇论文,名称是《An Integrated Neighborhood Dependent Approach for Nonlinear Enhancement of Color Images 》,有兴趣的朋友仔细细读一下。论文篇幅很短,所以应该难度不大,而且效果极佳。
通过灰度图,动态范围压缩,高斯滤波结果,得到修复的灰度图。然后根据灰度图进行色彩恢复
Matlab
clear
I=im2double(imread('2.
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
img = img.astype(np.float)
#获取v通道(颜色亮度通道),并做渐变性的增强
img[:, :, 2] = np.where(img[:, :, 2] > 100, img[:, :, 2] + 20.0, img[:, :, 2])
低光照图像增强是计算机视觉领域中的一项重要技术,卷积神经网络能够应用于低光照图像增强的任务中,提高图像质量。以下是卷积神经网络低光照图像增强python代码实现的简要说明:
1. 数据集准备
首先需要准备低光照图像数据集,该数据集应该包括大量低光照度图像和对应的原始图像。
2. 数据预处理
使用Python的OpenCV或PIL库完成图像加载、缩放以及灰度化等预处理操作,将图像转换为CNN网络所需的输入。
3. 构建CNN模型
使用Python的深度学习框架(如TensorFlow、Keras等)构建卷积神经网络模型,该模型应包含卷积层、池化层、激活层和全连接层等。
4. 模型训练
在准备好的数据集上对网络模型进行训练,使用反向传播算法等优化算法进行参数调整和优化。
5. 模型评估与应用
使用测试集对训练好的模型进行评估,计算检测准确率等指标。使用模型对新的低光照度图像进行增强操作,得到对应的高亮度图像。最终将增强后的图像保存到本地。
总之,卷积神经网络低光照图像增强python代码的实现需要经过数据集准备、数据预处理、模型构建、模型训练、模型评估以及应用等一系列步骤。通过这些步骤,可以实现低光照度图像的增强,提高图像的质量和显示效果。