Я пытаюсь отслеживать показания на ЖК-дисплее с помощью OpenCV (и Picamera).
Я снимаю каждую секунду и хочу, чтобы изображение было одинаковым как минимум три кадра (3 секунды). Просто чтобы избежать сценариев, в которых я бы анализировал изображение, когда есть выключатель света или что-то прерывает изображение.
Итак, я читаю три изображения подряд и вычисляю разницу между ними, печатая (img0, img1, img2 - три последовательных изображения в оттенках серого):
> print(max(diff(img0,img1), diff(img1,img2), diff(img0, img2)))
, где
> def diff(image1, image2):
> return abs(image1-image2).mean()
Я также использовал функцию absdiff с похожими результатами.
Но странно, что при отсутствии изменения изображения (видимого мне) значения составляют около 120-160. Но когда я выключаю свет, значение падает до 110, а затем поднимается до 220. И когда я приставляю палец к рамке, значение все равно может находиться в области 120-160. Я не могу понять реальную модель, которая имела бы большой смысл. Возможно, проблема в том, что возникает дрожание и множество различий в пикселях.
Есть ли более умный способ сделать это?
Я прилагаю несколько образцов фотографий.