【问题标题】:Normalize the dark and bright areas in an image标准化图像中的暗区和亮区
【发布时间】:2021-10-19 17:59:09
【问题描述】:

我有一张纺织品图像,其中一些暗区和一些亮区混合在一起。有什么方法可以统一规范化它们吗?最终目标是发现缺陷。

我知道直方图均衡和其他东西,但这并不能解决我的问题。 非常感谢这方面的任何建议。

更新 1: 我不能发布原始图像,因为它是机密的,但图片的亮度如下图所示,有些区域比其他区域更暗。

更新2:所以我的原始图像有点像这样!

【问题讨论】:

  • 不太符合您的描述。可以发一下图片吗?
  • @MarkLavin 请检查我的编辑 1。
  • 运行一个巨大的对称 LPF 以找到明亮斑点的中心和椭圆体。然后对平均亮度进行拟合以找到到照明源的距离(如果您还不知道的话),并对强度应用朗伯校正。
  • 您也可以使用内核比织物纹理稍大的 LPF(我假设这代表低通滤波器),然后从原始图像中减去它。

标签: python numpy opencv image-processing histogram


【解决方案1】:

我认为这种方法对颜色不安全,而且我认为以后可以拍摄更好的图像,从而减少光线对织物的损坏。

import sys
import cv2
import numpy as np

pth = sys.path[0]
org = cv2.imread(pth+'/tx3.png')

shade = cv2.medianBlur(org, 13)
shade = cv2.cvtColor(shade, cv2.COLOR_BGR2GRAY)
shade = cv2.cvtColor(shade, cv2.COLOR_GRAY2BGR)

flat = (org+(1-(shade/255))*~shade*2)/2
norm = flat*255/np.max(flat)

cv2.imwrite(pth+'/shade.jpg', shade)
org = np.hstack((org, flat))
out = np.hstack((shade, norm))
cv2.imwrite(pth+'/Flatten.jpg', np.vstack((org, out)))


【讨论】:

  • @sh-navid 感谢您的回答,但使用您的算法,我得到了白色的扁平图像。
  • 你好 :) 首先在你给我们看的图片上试试这个方法。
  • @sh-navid 请看图 2(更新 2)。那是我的原图。
  • 我认为你需要一张更好的照片。因为在第二张图像中,某些部分的光线似乎过多,以至于图像的成分丢失了。有没有更好的物理成像的可能性?
  • 那是光线不均匀的问题,我没办法改变灯光。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
相关资源
最近更新 更多