• 666小飞飞666
    了解作者
  • Python
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 3
    下载次数
  • 2020-02-11 22:58
    上传日期
本代码是图像增强算法,亲测可用,不过环境需要自行配置,图片也需要自己寻找。
MSRCR.py.zip
  • MSRCR.py
    3.1KB
内容介绍
import cv2 import numpy as np from matplotlib import pyplot as plt import argparse parser = argparse.ArgumentParser() parser.add_argument('-i', '--input', required=False,default='/home/nls3/zyj/DarkPair/Low/1.png', help='Input image path') parser.add_argument('-o', '--output', required=False,default='/home/nls3/zyj/DarkPair/test/test1.png', help='Output image path') parser.add_argument('-s', default=300, type=float, help='The scale (reference value)') parser.add_argument('-n', default=3, type=int, help='The number of scale') parser.add_argument('-d', default=2, type=float, help='The dynamic, the smaller the value, the higher the contrast') def retinex_scales_distribution(max_scale, nscales): scales = [] scale_step = max_scale / nscales for s in range(nscales): scales.append(scale_step * s + 2.0) return scales def CR(im_ori, im_log, alpha=128., gain=1., offset=0.): im_cr = im_log * gain * ( np.log(alpha * (im_ori + 1.0)) - np.log(np.sum(im_ori, axis=2) + 3.0)[:, :, np.newaxis]) + offset return im_cr def MSRCR(image_path, max_scale, nscales, dynamic=2.0, do_CR=True): im_ori = np.float32(cv2.imread(image_path)[:, :, (2, 1, 0)]) scales = retinex_scales_distribution(max_scale, nscales) im_blur = np.zeros([len(scales), im_ori.shape[0], im_ori.shape[1], im_ori.shape[2]]) im_mlog = np.zeros([len(scales), im_ori.shape[0], im_ori.shape[1], im_ori.shape[2]]) for channel in range(3): for s, scale in enumerate(scales): # If sigma==0, it will be automatically calculated based on scale im_blur[s, :, :, channel] = cv2.GaussianBlur(im_ori[:, :, channel], (0, 0), scale) im_mlog[s, :, :, channel] = np.log(im_ori[:, :, channel] + 1.) - np.log(im_blur[s, :, :, channel] + 1.) im_retinex = np.mean(im_mlog, 0) if do_CR: im_retinex = CR(im_ori, im_retinex) im_rtx_mean = np.mean(im_retinex) im_rtx_std = np.std(im_retinex) im_rtx_min = im_rtx_mean - dynamic * im_rtx_std im_rtx_max = im_rtx_mean + dynamic * im_rtx_std im_rtx_range = im_rtx_max - im_rtx_min im_out = np.uint8(np.clip((im_retinex - im_rtx_min) / im_rtx_range * 255.0, 0, 255)) return im_out if __name__ == '__main__': for i in range(10): image_path1 = '/Users/lpf/MSRCR_Python-master/test_images/' + str(i+1) + '.jpg' out_path = '/Users/lpf/MSRCR_Python-master/normal_images/' + str(i+1) + '.jpg' #print(image_path1) # image_path1 = '/home/nls3/zyj/DarkFace_Train/images/1.png' # out_path = '/home/nls3/zyj/DarkFace_Train/Normal/1.png' im_out = MSRCR(image_path1, 300, 3, 2) cv2.imwrite(out_path, im_out[:, :, (2, 1, 0)]) # cv2.imshow('MSRCR', out_msrcr[:, :, (2, 1, 0)]) # out_msr = MSRCR(image_path, max_scale=300, nscales=3, dynamic=2, do_CR=False) # cv2.imshow('MSR', out_msr[:, :, (2, 1, 0)]) #################################################################################### # args = parser.parse_args() # im_out = MSRCR(args.input, args.s, args.n, args.d) # cv2.imwrite(args.output, im_out[:, :, (2, 1, 0)])
评论
    相关推荐
    • MSRCR.zip
      图像对比度增强的经典算法MSRCR,使用matlab编程
    • 多尺度Retinex算法MSRCR.rar
      图像增强算法——Retinex算法。并在MATLAB中实验一下这类方法的去雾效果。
    • MSRCR.zip
      retinex算法 ,基于matlab平台的仿真程序,可以使图像增强。这是已经封装好的程序,有界面,可以直接使用。
    • MSRCR.rar
      MSRCR的一种相关简单算法,和自己的一点改进算法,使用平台为MATLAB
    • 去雾算法.rar
      SSR、MSRCR、Retinex和暗通道四种去雾算法的matlab实现,亲测好用,改图片名可以直接运行,效果很好
    • retinex视网膜皮层图像增强算法
      基于opencv4.10的retinex视网膜皮层图像增强算法,能比较好的实现图像画质增强
    • MSRCR-Restoration.rar
      Retinex图像增强算法( MSR, MSRCR)详解及其OpenCV源码 在原来的基础修改了下 我用的是Opencv 3.4.5 ,原来的是opencv2.4.9 编译有个错误,需要修改
    • 基于Retinex的图像增强算法
      基于Retinex图像增强MSRCR算法的C语言实现,与原“基于Retinex的MSRCR算法的C语言实现”资源不同处在于,该程序不依赖于OpenCV读取和保存图像。
    • Retinex-Image-Enhancement:实施的图像增强算法,使用retinex理论来增加图像的对比度
      Retinex-Image-Enhancement:实施的图像增强算法,使用retinex理论来增加图像的对比度
    • codesforimageprocessing.rar
      实现简单图像处理,包括256色转灰度图、Hough变换、Walsh变换、中值滤波、二值化变换、亮度增减、傅立叶变换、反色、取对数、取指数、图像平移、图像旋转、图像细化、图像缩放、图像镜像、均值滤波、对比度拉伸、拉普拉斯锐化(边缘检测)、方块编码、梯度锐化、灰度均衡、直方图均衡、离散余弦变换、维纳滤波处理、逆滤波处理、阈值变换、高斯平滑。