这是我目前拥有的,但它的阅读速度非常慢。仅仅用opencv读取帧就需要6-8秒,对于我的项目,我需要能够在读取压力传感器时以特定的间隔获取图片。有没有一种方法可以让这个程序在cv2或can上运行得更快?有没有一种方法可以使用阵列,或者什么方法可以让程序运行得更快
import cv2
import timeit
def main(): #Define camera function
start = timeit.default_timer() #Starts a runtime timer
hud_Cam = cv2.VideoCapture(0) #Call camera resource
gauge_Cam = cv2.VideoCapture(1)
rval, hud_Img = hud_Cam.read() #Read/Grab camera frame
rval, gauge_Img = gauge_Cam.read()
stop = timeit.default_timer() #Stops a runtime timer
print('Time: ', stop - start) #Calculate runtime timer
start1 = timeit.default_timer() #Starts a runtime timer
hud_name = ('HudPicture0.jpg') #Initialize file names
gauge_name = ('GaugePicture0.jpg')
cv2.imwrite(hud_name, hud_Img) #Write camera frame to file names
cv2.imwrite(gauge_name, gauge_Img)
print("Hud Picture written!") #Log to console
print("Gauge Picture written!")
hud_Cam.release() #Release camera resource to clear memory
gauge_Cam.release()
stop1 = timeit.default_timer() #Stops a runtime timer
print('Time: ', stop1 - start1) #Calculate runtime timer```
这使得时间下降到,时间:2.066412200000059
据我所知,您希望能够在Labview请求后尽快从两个摄像头拍摄两张图像
在Linux或macOS上,我会尽快开始连续捕获,然后使用Unix信号向捕获过程发送信号。不幸的是,您使用的是Windows,信号在那里工作得不太好。因此,我将使用文件系统发出信号——如果Labview想要拍摄照片,它只创建一个名为
capture.txt
的文件,该文件包含或不包含名为capture.txt
的内容,并使Python进程保存当前图像。还有其他更复杂的方法,但这说明了这一概念,随着您了解更多,您可以用套接字写入、MQTT消息或其他方式来替换信令机制我将两个摄像头放在两个独立的线程中,这样它们可以并行工作,即更快
相关问题 更多 >
编程相关推荐