相关疑难解决方法(0)

用于检测图像中不均匀照明的稳健算法 [仅需要检测]

tesseract OCR 文本识别的最大挑战之一是图像的不均匀照明。我需要一种算法来确定图像是否包含不均匀的照明。

测试图像

我附上了no illumination image,glare image( white-spotted image)和的图像shadow containing image。如果我们给算法一个图像,算法应该分为两类

  1. 没有不均匀的照明 - 我们no illumination image将属于这一类。
  2. 不均匀的照明 - 我们的glare image( white-spotted image), shadow containing image将属于这一类。

无照明图像 - A 类

好形象

不均匀照明图像(眩光图像(白斑图像))B 类

眩光图像

不均匀照明图像(包含图像的阴影)B 类

Ueven 闪电条件

初始方法

  1. 将色彩空间更改为 HSV

  2. HSV值通道直方图分析识别光照不均。

代替前两步,我们可以使用感知亮度通道代替HSV的值通道

  1. 设置低阈值以获取小于低阈值的像素数

  2. 设置高阈值以获取高于高阈值的像素数

  3. 低像素值百分比和高像素值百分比检测不均匀闪电情况(百分比设置阈值)

但我找不到不均匀照明图像之间的大相似之处。我刚刚通过直方图分析发现有些像素的值较低,而有些像素的值较高。

基本上我的感觉是,如果在低阈值中设置一些阈值并找出有多少像素小于低阈值,并设置一些高阈值以找出有多少像素大于该阈值。有了像素数,我们可以得出结论来检测图像中不均匀的闪电条件吗?这里我们需要敲定两个阈值和像素数的百分比来得出结论。

光照良好和不均匀图像之间的V通道直方图分析

白色眩光点图像与不均匀雷电条件图像的V通道直方图分析

def  show_hist_v(img_path):
    img = cv2.imread(img_path)
    hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    h,s,v  = cv2.split(hsv_img)
    histr =cv2.calcHist(v, [0], None, [255],[0,255])
    plt.plot(histr) 
    plt.show() 
    low_threshold =np.count_nonzero(v < 50)
    high_threshold =np.count_nonzero(v …
Run Code Online (Sandbox Code Playgroud)

python algorithm opencv image-processing computer-vision

18
推荐指数
2
解决办法
2146
查看次数