是否根据灰度动态范围将图像分类为褪色?

时间:2018-07-12 21:36:50

标签: python opencv image-processing classification grayscale

我正在尝试在Python的OpenCV上重新创建算法(从publication开始),以检测图像是否具有褪色效果。

本文陈述如下:

  

“已冲洗的图像的动态范围减小了(灰度级   图像)。合规性   分数只是通过重新调整广告素材的动态范围来计算   灰度图像到[0; 100]“

问题是,我不了解灰度动态范围是什么。

这是关于计算灰度图像[0-255]的最小像素值和最大像素值之间的差异,并将该值重新缩放到[0-100]的范围吗?

1 个答案:

答案 0 :(得分:2)

我在 researchgate.com 上找到了该论文。本文讨论了面部图像必须经过的各种标准才能被标记为机器可读的。因为与人类不同的机器无法在光照,遮挡,姿势差异等各种条件下理解人脸图像。除了问题中的陈述外,关于ICAO 13的信息很少。所以我想这是下面的方法。

按照ICAO 13将灰度图像转换为动态范围可以通过以下方式完成:

enter image description here

我从OpenCV文档中获取了一个示例图像来说明这一点:

代码:

import cv2
import numpy as np

img = cv2.imread(path + 'wiki.jpg', 0)

print(((np.max(img) - np.min(img)) * 100) / 255)
cv2.imshow(path + 'normal.jpg', img)

equ = cv2.equalizeHist(img)
print(((np.max(equ) - np.min(equ)) * 100) / 255)
cv2.imshow(path + 'equalized.jpg', equ)

结果:

 Dynamic range of original image : 36
 Dynamic range of equalized image : 100

原始图片:

enter image description here

均衡图像:

enter image description here

现在,由于您的值介于0到100之间,因此您可以选择一个阈值(例如85) 并说价值等于或大于85的图像符合机器可读要求。如果该值低于阈值,则丢弃图像。