猿问

同时控制步进电机和相机

同时控制步进电机和相机的最佳方法是什么?


假设相机放置在线性平台(步进电机)上,我想以 1 mm 的步长移动平台并在每一步结束时捕获一帧。两个设备(相机和舞台)都通过 2 个不同的 USB 2.0 端口连接到我的电脑(Ubuntu 18.04.3 LTS)。


我的相机脚本如下所示:


def camera():

    ...

    ...

    ...

    while(True):

        cv2.imshow('live', frame)

        ueye.is_ExitCamera(hCam2)

        cv2.destroyAllWindows()


if __name__ == "__main__":

    camera()

并从摄像机输出直播。


对于电机,例如:


i = 0

while i < 6:           # Move 6 times

    stepper.Move(0.5)  # Moves forward by 0.5 mm

    time.sleep(1)      # Sleeps for a second

    i += 1


time.sleep(2)

print("\nProcess End\n")

close()                # closes port 

并根据需要移动和睡觉。


单独执行时,两个脚本都能成功运行。但是,如何组合这些脚本,以便在每个步骤结束时拍照?对于上面提到的移动 6 次的示例,我想在最后获得 6 张图像,在每一步结束时捕获。是否应该使用多线程、多处理?... 这两种设备都通过 2 个单独的 USB 2.0 端口连接到我的计算机。我不是编程的初学者,但也不是专家,所以任何建议都将不胜感激。


慕妹3146593
浏览 178回答 1
1回答

holdtom

您不能调用某些在每一步中捕获图像的函数是有原因的吗?# import modules for camera and stepper controldef step_and_capture(steps=6):&nbsp; images = []&nbsp; for x in range(steps):&nbsp; &nbsp; stepper.Move(0.5)&nbsp; &nbsp; image = cam_capture_method() # returns a photo or it could write to somewhere&nbsp; &nbsp; time.sleep(1)&nbsp; # save the images to folder?if __name__ == "__main__":&nbsp; &nbsp; step_and_capture()
随时随地看视频慕课网APP

相关分类

Python
我要回答