本帖最后由 abcehac 于 2019-8-8 14:27 编辑
求各位版主和大神解答小白的几个疑惑:
疑问1、rknn_camera.py和rknn_camera_tiny.py if __name__ == '__main__':中
rknn_camera.py主程序中有:
ret, frame = capture.read()
if ret == True:
#image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
image = cv2.resize(frame, (608, 608))
rknn_camera_tiny.py主程序中有:
ret, frame = capture.read()
if ret == True:
image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
image = cv2.resize(frame, (416, 416)
红色的这两句,有句注释掉了,有一个没有。请问这里是否需要做色彩空间转换?如果要做转换的话,是不是第2句的image = cv2.resize(frame, (416, 416))中的frame应该改成image?
疑问2、rknn_camera.py和rknn_camera_tiny.py if __name__ == '__main__':中都有
if boxes is not None:
draw(image, boxes, scores, classes)
在def draw 定义中有写到: # Argument: image: original image.
但是在if draw() 中传入的这个 image 应该是image = cv2.resize(frame, (416, 416)) 得到的resize过的image。
请问argument中的这个original image指的就是resize过的image的这个image吗?
疑问3、rknn_camera_tiny_multiProcess.py 中:
def video_capture(src, q_frame: queue, q_image: queue):
ret, frame = video.read()
image = cv2.resize(frame, (416, 416))
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
在这里做了颜色空间转换,并且第2个 image= 中不是frame而是image。疑问1解答后就知道这里是否正确,要怎么修改了。
if __name__ == '__main__':
frame = q_frame.get()
if boxes is not None:
draw(frame, boxes, scores, classes)
cv2.putText(frame, text='FPS: {}'.format(fps), org=(3, 15), fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=0.50, color=(255, 0, 0), thickness=2)
cv2.imshow("results", frame)
在多进程py中,draw()这里传递的参数的实际值都是frame。但是在rknn_camera_tiny.py中draw()、cv2.putText()、cv2.imshow()函数传递的第1个参数的实际值是frame经过rezie后的image。
请问,这里的3个函数是应该传入ret, frame = capture.read() 中的frame呢?还是应该传入image = cv2.resize(frame, (S, S)) 的image呢?(感觉疑问1、2、3这三个问题都挺相关的。)
非常感谢各位的帮助!!!
|