opencv-图像对比度增强

对比度增强,即将图片的灰度范围拉宽,如图片灰度分布范围在50,150之间,将其范围拉升到0,256之间。这里介绍下 线性变换,直方图正规化,伽马变换,全局直方图均衡化,限制对比度自适应直方图均衡化等算法。

线性变换

通过函数y=ax+b对灰度值进行处理,例如对于过暗的图片,其灰度分布在0,100, 选择a=2,b=10能将灰度范围拉伸到10, 210。可以通过np或者opencv的convertScaleAbs()函数来实现 。

python 复制代码
#coding:utf-8

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from cv2 import convertScaleAbs

img = cv.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")
print(img)
img_bright = cv.convertScaleAbs(img,alpha=1.5,beta=0)
print(img_bright)

cv.imshow("img",img)
cv.imshow("img_bright",img_bright)
cv.waitKey(0)
cv.destroyAllWindows()

convertScaleAbs()


直方图正规化

python 复制代码
#coding:utf-8

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np

img = cv.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")
img_norm=cv.normalize(img,dst=None,alpha=350,beta=10,norm_type=cv.NORM_MINMAX)
cv.imshow("img",img)
cv.imshow("img_norm",img_norm)
cv.waitKey(0)
cv.destroyAllWindows()

cv.normalize()


全局直方图均衡化

python 复制代码
#coding:utf-8

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
import math

img = cv.imread(r"C:\Users\Administrator\Desktop\dark.jpg",0)
img_equalize = cv.equalizeHist(img)
cv.imshow("img",img)
cv.imshow("img_equalize",img_equalize)
cv.waitKey(0)
cv.destroyAllWindows()

opencv equalizeHist()
相关推荐
shujudang1 分钟前
AI会员运营的数据实践:人群预测、等级策略与效果分析
大数据·人工智能·数据挖掘·数据分析
Maynor9961 分钟前
一张照片出演吵架舞:Bad Times AI 人物/宠物短视频工具体验与实现简析
人工智能·短视频·独立开发·ai视频·badtimes·照片生成视频
zoutao985 分钟前
DeepSeek 智能效果实测与能力边界解析
大数据·运维·人工智能
易知微EasyV数据可视化10 分钟前
会插卡片的编辑器:在 Agent 输入框里混排文字与结构化内容
人工智能·经验分享·编辑器·agent·设计
skywalk816316 分钟前
介绍一下BEAM 数据和 LoCoMo 数据:评估大模型记忆能力的数据集
人工智能·记忆
MerryLuna16 分钟前
专业的EUDR机构
大数据·人工智能·python
wespaul18 分钟前
VeapAI 自然语言操作实战|第 04 篇:系统数据加工——把系统自身的元数据吃成知识
java·大数据·运维·数据库·人工智能
墨云安全23 分钟前
自动化安全测试工具的技术架构、集成方式与任务编排(2026 年实践)
人工智能·网络安全·渗透测试
KKKlucifer25 分钟前
从人工堆标到模型驱动:数据分类分级平台的现实分化
大数据·人工智能·分类
Data analyse45634 分钟前
rrweb回放事件资源加载顺序重放校验
前端·人工智能·算法·机器学习·数据分析