图像处理 亮度、CLAHE处理、MSRCR
图像亮度提取
import cv2
import numpy as np
img=cv2.imread('demo.jpg')
img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
brightness=np.mean(img_gray)
图像亮度调整
res = np.uint8(np.clip((2 * img + 20), 0, 255))
CLAHE处理
img_clahe = np.zeros_like(img)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
for i in range(3): img_clahe[:, :, i] = clahe.apply(img[:, :, i])
MSRCR处理
# -*- coding: utf-8 -*-
import os
import cv2
import numpy as npdef retinex_scales_distribution(max_scale, nscales):scales = []scale_step = max_scale / nscalesfor s in range(nscales):scales.append(scale_step * s + 2.0)return scalesdef 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]) + offsetreturn im_crdef MSRCR(image_path, max_scale, nscales, dynamic=2.0, do_CR=True):im_ori = np.float32(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 scaleim_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_stdim_rtx_max = im_rtx_mean + dynamic * im_rtx_stdim_rtx_range = im_rtx_max - im_rtx_minim_out = np.uint8(np.clip((im_retinex - im_rtx_min) / im_rtx_range * 255.0, 0, 255))return im_outif __name__ == '__main__': s=300 #300n=3 #3d=2 #2no_cr=Trueimglist='demo.txt'outdir='results'f=open(imglist,'r') lines=f.readlines() if not os.path.exists(outdir): os.makedirs(outdir) for line in lines: imgpath=line.strip().split(' ')[0] imgdir,imgname=os.path.split(imgpath)print('imgpath',imgpath) im=cv2.imread(imgpath)if im is None:print('img is None!',imgpath)h,w,c=im.shape#im_size=cv2.resize(im,(int(w/4),int(h/4)))im_out = MSRCR(im, s, n, d, not no_cr)output=os.path.join(outdir,imgname)cv2.imwrite(output, im_out[:, :, (2, 1, 0)])
图像处理 亮度、CLAHE处理、MSRCR相关推荐
- 数字图像处理—亮度变换与空间滤波—亮度变换函数
数字图像处理-亮度变换与空间滤波-亮度变换函数 参考资料:<数字图像处理>,仅供学习参考. 亮度变换函数仅取决于亮度的值,与像素位置无关,所以亮度变换函数通常可写成如下形式: s=T(r) ...
- C++图像处理 -- 亮度/对比度调整
阅读提示: <C++图像处理>系列以代码清晰,可读性为主,全部使用C++代码. <Delphi图像处理>系列以效率为侧重点,一般代码为PASCAL,核心代码采用 ...
- c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化
文章来自:微信公众号[机器学习炼丹术]. 文章目录: 1 基本概述 2 竞赛中的CLAHE实现 3 openCV绘制直方图 4 对比度Contrast 5 Contrast Stretching 6 ...
- JsCV Core v0.2发布 Javascript图像处理系列目录
JsCV Core是一个开源的Javascript图像处理核心库,其在MIT许可下发布. 简介 本质上JsCV是旨在:用Javascript做一些Computer Vision(计算机视觉)的事情的. ...
- 在QT框架下进行仿照PS图像调整功能设计(亮度对比度,色相饱和度及明度)
原文链接:https://blog.csdn.net/maozefa/article/details/4778934 图像亮度调整分为非线性和线性两种方法. 非线性图像亮度是将图像像素的R.G.B分别 ...
- MATLAN图像处理之盲去卷积
%盲去卷积 %图像复原中,困难的是得到PSF(PSF) 不以PSF复原图像的方法 盲去卷积 %MLE 最大似然估计为基础,用被随机噪声干扰的量进行估计的最优化策略 %将图像数据看成是随机量,它们与另一 ...
- MATLAN图像处理之高频强调滤波(图像增强)
书中是对X拍的图片进行了增强 下面这个例子不太合适 但是也能体会到高频强调滤波的作用 % 图中可以看出 高频强调滤波在增强边缘的同时 距离原图的色度较近 %高通滤波器偏离了直流项,从而把图像的 ...
- CLAHE算法实现图像增强「AI工程论」
关注:决策智能与机器学习,深耕AI脱水干货 作者 | 机器学习炼丹术 来源 | 机器学习炼丹术 1 基本概述 CLAHE是一个比较有意思的图像增强的方法,主要用在医学图像上面.之前的比赛中,用到了 ...
- 视觉组考核——装甲板识别
视觉组考核--装甲板识别 识别Robomaster的装甲板的简易程序 算法分析 装甲板识别主要分这几步 图像处理->提取灯柱同时对灯柱进行筛选->灯条匹配->装甲板的筛选 1.图像处 ...
最新文章
- struts2之ModelDriven的使用
- 最强的Attention函数诞生啦,带给你意想不到的巨大提升!
- socket网络编程——多进程、多线程处理并发
- spring— Spring与Web环境集成
- MyEclipse 10.5 安装SVN插件
- 决策树算法学习笔记(提升篇)
- Python机器学习:逻辑回归算法以及多类分类
- IPv6 to IPv4过渡技术——6to4隧道配置实例
- 虚拟机安装MySQL教程
- 人工智能的变革趋势: 从弱人工智能到强人工智能,再到生物智能
- windows复制文件命令Xcopy
- 20220724 三角函数系的正交性
- dimens文件生成器
- html中span隐藏属性,span标签的class属性
- CTS测试中testYuvBurst[1]项
- table.render 中 cols 属性 【【问题】】
- 直接在文件夹打开cmd
- 羊毛出在狗身上让猪来买单 - 智能音箱背后的平台经济...
- JAVASE面向对象基础
- Algorithm Review 7 数学相关
热门文章
- hooks 系列七:自定义 hook
- 乖宝宠物IPO过会:年营收25.75亿 KKR与君联是股东
- excel设置打印区域_仅在没有打印区域的情况下打印Excel表
- apex声音断断续续_EPL S12单日汇总:apEX大发神威,Astralis全员发挥,瑞典双雄无奈败北...
- java对PNG图片圆角处理 保持PNG透明背景
- 华为云计算学习:计算虚拟化基础1
- PHP 正则表达式判断手机号和身份证号
- html下拉框内容新增,给html下拉框控件自动添加数据
- C语言基础 — 运算符
- android 评论盖楼,Android 使用ListView实现网易评论盖楼效果