Форум сайта python.su
0
[code] import numpy as np import cv2 import time import serial
ttyDev = '/dev/ttyAMA0'
ttyBourRate = 115200 refBW = 100 limitLight = 10 limitDark = 90
ser = serial.Serial(ttyDev, ttyBourRate, timeout=0) # open first serial port
font = cv2.FONT_ITALIC cap = cv2.VideoCapture(0) firstFrame = 1 while(True): badPixels = 0 if firstFrame == 1: ret, frame = cap.read() #height, width = frame.shape[:2] #frame = cv2.resize(frame,(width/2, height/2), interpolation = cv2.INTER_CUBIC) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) pixelsArr = np.array(gray) if firstFrame == 1: totalPixels = pixelsArr.size
darkPixels = pixelsArr < refBW-limitDark
ligthPixels = pixelsArr > refBW+limitLight
badPixels = np.sum(darkPixels+ligthPixels)
percentageBad = int(round(100*badPixels/totalPixels))
time2 = int(round(time.time() * 1000))
if firstFrame != 1:
delta = time2-time1
#cv2.putText(frame, 'FPS: '+str(round(1000.0*1.0/delta,3)), (20, 40), font, 1, (255, 0, 0), 2)
print str(round(1000.0*1.0/delta,3)) #cv2.putText(frame, 'Bad: '+str(percentageBad), (20, 80), font, 1, (255, 0, 0), 2) ser.write([percentageBad])
# Display the resulting frame
#cv2.imshow('test',frame)
time1 = int(round(time.time() * 1000))
firstFrame = 0
if cv2.waitKey(20) & 0xFF == ord('q'):
break
ser.close() cap.release() cv2.destroyAllWindows() [/code] Картинка размером 640 на 480, четыре строки \
darkPixels = pixelsArr < refBW-limitDark
ligthPixels = pixelsArr > refBW+limitLight
badPixels = np.sum(darkPixels+ligthPixels)
percentageBad = int(round(100*badPixels/totalPixels))
Дают просатку по скорости до 6-9 FPS возможно ли быстрее сравнить каждый елемент массива с верхней и нижней границей
Отредактировано Casufi (Май 20, 2015 10:24:58)
Офлайн
0
Офлайн
568
CasufiПрофиль –> Отображение
Форум сожрал форматирование
Офлайн
253
CasufiНу возможности оптимизации есть всегда. Напишите сравнение на С и посмотрите что получится по времени. Думаю будет быстрее, но не сильно . Еще проще почитать доку по opencv возможно там есть такой фильтр.
возможно ли быстрее сравнить каждый елемент массива с верхней и нижней границей
Отредактировано doza_and (Май 18, 2015 20:33:38)
Офлайн