我正在尝试打开视频文件并使用按键逐帧播放。因此它将打开并无限期显示单个帧,直到按下特定的键,然后它将切换到下一帧。
我正在使用python3和cv2。这是我第一次使用cv2,因此欢迎任何更正/建议。
以下代码的工作方式是一次显示一帧视频,不仅是当我按 k 时,而且是按任意键时,它都忽略了 q 退出。
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, "text/xml;charset=UTF-8");
headers.add("SOAPAction", "urn:creditCard#creditCard");
headers.set("Accept", "text/xml;charset=UTF-8");
headers.set("Accept-Language", "en-GB");
headers.set("Content-Language", "en-GB");
headers.setAcceptCharset(Arrays.asList(Charset.forName("UTF-8")));
HttpEntity<String> requestEntity = new HttpEntity<String>(xmlText, headers);
// RequestEntity<String> soapRequest = null;
// try {
// soapRequest = RequestEntity.post(new URI(defaultUri)).contentType(MediaType.TEXT_XML)
// .accept(MediaType.TEXT_XML).acceptCharset(Charset.forName("UTF-8"))
// .header("SOAPAction", "urn:creditCard#creditCard").body(xmlText);
// } catch (URISyntaxException e) {
// throw new BaseException("Service is Unavailable at this Moment. Please check later!!");
// }
ResponseEntity<String> response = null;
try {
response = restTemplate.exchange(new URI(defaultUri), HttpMethod.POST, requestEntity, String.class);
log.info("Succesfully Response Recieved ....Credit Limit API RAW Response : " + response.getBody());
......
我想按一个特定的键前进(也可以向后移动一个键,但这可能是另一个问题),并且可以按 q 退出。
有什么建议吗?预先谢谢你!
答案 0 :(得分:1)
您从未遇到过cv2.waitKey(00) == ord('k')
条件。实际上,该行计算True
或False
,然后将其丢弃。
您希望它停止什么,直到用户按下'q'
或'k'
:
while video.isOpened():
# Read video capture
ret, frame = video.read()
# Display each frame
cv2.imshow("video", frame)
# show one frame at a time
key = cv2.waitKey(0)
while key not in [ord('q'), ord('k')]:
key = cv2.waitKey(0)
# Quit when 'q' is pressed
if key == ord('q'):
break