明亮的暗图像检测

问题描述 投票:0回答:1

我正在做一个关于分析树木绿色趋势的项目。在初始处理方面,我得到了整个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就这个网站而言,确定门槛真的很难。是否有任何方法可以用来区分数据集中高强度的黑暗图片?如果我计划专注于局部方差并运行窗口方法,有些专家可以给我一个暗示。非常感谢...

python image-processing
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.