[问题] 关于使用opencv拍照的画面

楼主: st40182 (天羽)   2018-05-08 10:55:33
大家好
最近我想使用python搭配opencv拍照
于是做了个小程式
==============================================================================
import cv2
import numpy as np
import time
cap = cv2.VideoCapture(2)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
while True:
ret, frame = cap.read()
cv2.line(frame,(960,0),(960,1080),(0,255,255),1)
cv2.line(frame,(540,0),(540,1080),(0,255,255),1)
#自画面中心画出十字的辅助线
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('c'):
cv2.imwrite("%s.jpg" %(time.time()), frame )
elif cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
==============================================================================
这个程式的目的有两个
1.在开启摄影机之后,可以自画面正中心画出十字的辅助线来对齐画面
2.按下c的时候拍照,按下q的时候关闭
但是想要做点改良
因为按下c之后,会连十字辅助线也一起被截取
想请问如果拍照时不要连同十字辅助线也撷取的话
改怎么改善会比较好
另外还有一个就是虽然设定按下q之后会关闭画面
但是常常关闭不了
想问这样的写法是不是有什么问题吗?
作者: neil987 (R5大小姐-EX人品崩坏)   2018-05-08 12:30:00
先说关闭不了的问题在while循环break之后 加上cap.release()跟cv2.destroyAllWindows()然后要注意中文输入法的问题 吐槽一下 你十字线应该也写错了然后 问题1也很好解 在你画线之前 可以先target = frame.copy() 然后imwrite写target不是frame补充一下 不要在多个if重复使用cv2.waitKeyhttps://i.imgur.com/y8sA5Tl.png应该说 关闭不了的原因是这样的而且关闭不了一定是在你截图后才发生的
作者: jason860421 (jason)   2018-05-09 01:47:00
Code上色也太用心XD
作者: ThxThx (洗洗睡)   2018-05-09 11:17:00
code上色是手动的吗!!? 写一个ptt code上色有没有搞头XDD

Links booklink

Contact Us: admin [ a t ] ucptt.com