首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算图像的对比度?

问如何计算图像的对比度?
EN

Stack Overflow用户
提问于 2019-11-12 22:52:19
回答 2查看 9.9K关注 0票数 2

假设我有一个opencv BGR图像img,如何计算该图像的对比度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-12 22:52:19

对比度的一个定义是RMS Contrast,它可以计算如下:

首先,将BGR图像img转换为灰度:

代码语言:javascript
复制
img_grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

最后,计算灰度图像像素强度的标准差:

代码语言:javascript
复制
contrast = img_grey.std()
票数 7
EN

Stack Overflow用户

发布于 2019-11-13 04:17:42

这里有一个对比度的度量:Michelson contrast以及如何在Python/OpenCV/Numpy中计算它。低对比度接近零,高对比度接近一。使用YUV或YCbCr中的Y(强度)通道或实验室中的L通道,甚至只是将图像转换为灰度并使用它。

输入:

​

​

代码语言:javascript
复制
import cv2
import numpy as np

# load image as YUV (or YCbCR) and select Y (intensity)
# or convert to grayscale, which should be the same.
# Alternately, use L (luminance) from LAB.
img = cv2.imread("barn.jpg")
Y = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)[:,:,0]

# compute min and max of Y
min = np.min(Y)
max = np.max(Y)

# compute contrast
contrast = (max-min)/(max+min)
print(min,max,contrast)

​

返回:

0 255 1.0

对比度将介于0和1之间。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58821130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档