我正在尝试在Python的OpenCV上重新创建算法(从publication开始),以检测图像是否具有褪色效果。
本文陈述如下:
“已冲洗的图像的动态范围减小了(灰度级 图像)。合规性 分数只是通过重新调整广告素材的动态范围来计算 灰度图像到[0; 100]“
问题是,我不了解灰度动态范围是什么。
这是关于计算灰度图像[0-255]的最小像素值和最大像素值之间的差异,并将该值重新缩放到[0-100]的范围吗?
答案 0 :(得分:2)
我在 researchgate.com 上找到了该论文。本文讨论了面部图像必须经过的各种标准才能被标记为机器可读的。因为与人类不同的机器无法在光照,遮挡,姿势差异等各种条件下理解人脸图像。除了问题中的陈述外,关于ICAO 13的信息很少。所以我想这是下面的方法。
按照ICAO 13将灰度图像转换为动态范围可以通过以下方式完成:
我从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
原始图片:
均衡图像:
现在,由于您的值介于0到100之间,因此您可以选择一个阈值(例如85) 并说价值等于或大于85的图像符合机器可读要求。如果该值低于阈值,则丢弃图像。