[問題] 關於使用opencv拍照的畫面已刪文

看板Python作者 (天羽)時間7年前 (2018/05/08 10:55), 7年前編輯推噓4(409)
留言13則, 3人參與, 7年前最新討論串1/1
大家好 最近我想使用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之後會關閉畫面 但是常常關閉不了 想問這樣的寫法是不是有什麼問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.105.133.228 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1525748138.A.208.html

05/08 12:30, 7年前 , 1F
先說關閉不了的問題
05/08 12:30, 1F

05/08 12:30, 7年前 , 2F
在while迴圈break之後 加上cap.release()跟
05/08 12:30, 2F

05/08 12:31, 7年前 , 3F
cv2.destroyAllWindows()
05/08 12:31, 3F

05/08 12:33, 7年前 , 4F
然後要注意中文輸入法的問題 吐槽一下 你十字線應該也寫
05/08 12:33, 4F

05/08 12:33, 7年前 , 5F
錯了
05/08 12:33, 5F

05/08 12:35, 7年前 , 6F
然後 問題1也很好解 在你畫線之前 可以先
05/08 12:35, 6F

05/08 12:36, 7年前 , 7F
target = frame.copy() 然後imwrite寫target不是frame
05/08 12:36, 7F

05/08 12:44, 7年前 , 8F
補充一下 不要在多個if重複使用cv2.waitKey
05/08 12:44, 8F

05/08 12:47, 7年前 , 9F

05/08 12:47, 7年前 , 10F
應該說 關閉不了的原因是這樣的
05/08 12:47, 10F

05/08 12:48, 7年前 , 11F
而且關閉不了一定是在你截圖後才發生的
05/08 12:48, 11F
謝謝ne大 問題成功的解決了! ※ 編輯: st40182 (120.105.133.228), 05/08/2018 13:42:19

05/09 01:47, 7年前 , 12F
Code上色也太用心XD
05/09 01:47, 12F

05/09 11:17, 7年前 , 13F
code上色是手動的嗎!!? 寫一個ptt code上色有沒有搞頭XDD
05/09 11:17, 13F
文章代碼(AID): #1QyH6g88 (Python)
文章代碼(AID): #1QyH6g88 (Python)