我有一个关于自行车抢劫的cctv镜头,视频不清楚。我正在努力增强视频,以查找有关车辆或面部的详细信息或其中的任何其他信息。 https://drive.google.com/file/d/0B8ZjiDWHZ1j-QkVKZFV4ZkV1ODA/view?usp=sharing 原始直方图均衡 CLAHE
到目前为止我在python opencv中所做的一切
有关如何从视频中收集更多信息的任何帮助(或者由于某些限制而死路一条)
import numpy as np
import cv2
import time
cap = cv2.VideoCapture('./bike_robbery.mp4')
clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(32,32))
count=0
sig = 1
th = 0
lm = 1.0
gm = 0.02
ps = 0;
ksize =31
gaborKernel=cv2.getGaborKernel((ksize,ksize), sig, th, lm, gm, ps);
sleeptime=0.001
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cl1 = clahe.apply(gray)
equ = cv2.equalizeHist(gray)
#denoise=cv2.fastNlMeansDenoising(cl1,None,3,90,2)
ths=cv2.threshold(equ, 230, 255, cv2.THRESH_BINARY)[1]
gab=cv2.filter2D(cl1,0 , cv2.CV_32F, gaborKernel);
kernel = np.array([[-1,-1,-1], [-1,18,-1], [-1,-1,-1]])
im = cv2.filter2D(equ, -1, kernel)
res = np.hstack((gray,equ,cl1)) #stacking images side-by-side
cv2.imwrite("./clahe_pics/frame%d.jpg" % count, cl1)
cv2.imwrite("./hist_pics/frame%d.jpg" % count, equ)
count = count + 1
cv2.imshow('frame',res)
time.sleep(sleeptime)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
if cv2.waitKey(1) & 0xFF == ord('s'):
sleeptime+=0.05
if cv2.waitKey(1) & 0xFF == ord('f'):
sleeptime-=.05
cap.release()
cv2.destroyAllWindows()
答案 0 :(得分:-1)
根据这个问题,如果你想找到人类和自行车的存在,你可以使用一些分类器,如人体检测和车辆检测。对于人体检测,您可以轻松找到预训练的哈尔分类器模型。对于检测自行车,您可以训练模型。好像这是一个实时问题。 但如果您担心照明问题,可以使用LAB图像并增强图像的L通道并调整图像的亮度。 对于人体检测,您可以在opencv的这条路径中找到模型:directory:opencv\sources\data\haarcascades