[問題] 關於使用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