明亮的暗图像检测

时间:2018-03-03 21:44:31

标签: python image-processing

我正在做一个关于分析树木绿色趋势的项目。在初始处理方面,我得到了整个500幅图像的强度值,并确定了从数据集中选择好图像的阈值。它的范围从60到122,我将该范围命名为良好的图像。我还在@ Andriy Makukha的帮助下从数据集中检测到了一些雾/雾图像。

然而,当我尝试使用相同的方法来区分不同意义上的好照片和坏照片时,它根本不起作用。正如您从下面的图片中看到的那样:The average of intensity for images

这是我的强度和阈值平均值的代码:

 im = Image.open('IMAG0170.JPG')
 im_grey = im.convert('LA')
 width,height = im.size

 total=0
 for i in range(0,width):
   for j in range(0,height):
     total += im.getpixel((i,j))[0]

 mean = total / (width * height)
 print mean

import cv2
import numpy as np
from matplotlib import pyplot as plt

results = []
for dirpath, dirnames, filenames in     os.walk("/Users/Terrynightbleach/Desktop/Dataset-Tree/No1_Leith Valley/"):
  for filename in [f for f in filenames if f.endswith('.JPG')]:
    img = cv2.imread(filename)
    avg_color_per_row = numpy.average(img, axis=0)
    avg_color = numpy.average(avg_color_per_row, axis=0)
    results.append(sum(avg_color/3))
np_results = np.array(results)
plt.hist(np_results,bins=100)
plt.show()

The threshold for the sense 就这个网站而言,确定阈值真的很难。有什么方法可以用来区分数据集中高强度的黑暗图片吗? 如果我计划专注于局部方差并运行窗口方法,有些专家可以给我一个暗示。非常感谢你......

1 个答案:

答案 0 :(得分:0)

我仍然不太确定你正在寻找什么"好"图像,但我会对它进行破解。我在这里做了一些大的假设,但看起来所有这些图像都来自于每次拍摄相同位置/视图的网络摄像头。如果这一个视图是你唯一需要担心的视图,那么我会利用这样的事实:在晚上,灌木丛位于底部2/3,而顶部1/3基本上都是黑色。

对于粗糙的夜间/白天过滤器,您可以在灌木丛开始之前检查前N行,如果它们真的很暗(接近,如果不是实际上是黑色)那么您可以抛出夜间图像。

对于其他人,我会再次使用这些植物和像素绿色通道将更有用的事实。即一些计算以检查G值比R&大多少。 B值可能真的很有帮助。