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()
相关推荐
lialaka5 小时前
「未来星途(Future_Odyssey)」——全语音_3D_AI_具身交互智能数字教官与全双工星际科普沉浸舱[1]
人工智能·3d·交互
hongmai6668885 小时前
ESP32-C61-WROOM-1-N8R2:Wi-Fi 6与RISC-V融合的中坚力量
人工智能·单片机·嵌入式硬件·物联网·智能家居·risc-v
正在走向自律5 小时前
用豆包Seed Evolving打造全功能【AI智能记账】小程序,开源可落地
人工智能·小程序·开源·智能记账
小保CPP5 小时前
OpenCV C++提取webp动图里的图片
c++·人工智能·opencv·计算机视觉
B8017913Y5 小时前
手动整理录音太慢错漏多?2026专业AI录音可高效整理内容
人工智能
梦想的颜色5 小时前
AI Agent 可观测性:破解多步推理黑盒|从概念、架构、指标到生产落地图鉴
人工智能·ai agent 可观测性·llm 追踪 trace·llmops 硬核实战·agent 生产运维
IT智慧客07315 小时前
Harness 到底指什么
人工智能
大模型任我行5 小时前
阿里:端到端文档解析模型OvisOCR2
人工智能·语言模型·自然语言处理·论文笔记
aixingkong9215 小时前
Atlas 950 1024卡SuperPoD推测分析
网络·人工智能·硬件架构·硬件工程
触底反弹5 小时前
🤯 面试被问 AI Workflow 和 Agent 有啥区别?3 张图 + 2 段代码讲清楚!
人工智能·设计模式·面试