繁体   English   中英

在 Python (Mac) 中使用 OpenCV 裁剪视频

[英]Cropping video with OpenCV in Python (Mac)

总的来说,我希望使用 OpenCV 访问网络摄像机,裁剪和调整它们的图像属性(饱和度、对比度、亮度),然后将结果作为新流输出。

我对 python/opencv 知之甚少,我正在尽我所能把它从我能找到的东西拼凑起来。

我已经能够访问 mjpeg 流,但是我发现的每种裁剪方式似乎都失败了。 下面的代码似乎是最有前途的,但我对替代方法持开放态度。

我在使用 Max MSP 和 Siphon 后取得了结果,但我希望使用 OpenCV 我将能够使这个完全基于 Web 且可访问。

我希望避免将流拆分为单独的 jpeg,但如果这是实现我所追求的唯一方法,请告诉我。

非常感谢任何和所有指导。


import cv2
import numpy as np

cap = cv2.VideoCapture('http://89.29.108.38:80/mjpg/video.mjpg')

(x, y, w, h) = cv2.boundingRect(c)
cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 0), 20)
roi = frame[y:y+h, x:x+w]

while True:
  ret, frame = cap.read()
  cv2.imshow('Video', frame)

  if cv2.waitKey(1) == 27:
    exit(0)

Traceback (most recent call last):
  File "mjpeg-crop.py", line 6, in <module>
    (x, y, w, h) = cv2.boundingRect(c)
NameError: name 'c' is not defined

评论太多了,但试试这个开始:

import cv2
import numpy as np

cap = cv2.VideoCapture('http://89.29.108.38:80/mjpg/video.mjpg')

# (x, y, w, h) = cv2.boundingRect(c)
# cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 0), 20)
# roi = frame[y:y+h, x:x+w]

while True:
    ret, frame = cap.read()
    # (height, width) = frame.shape[:2]
    sky = frame[0:100, 0:200]
    cv2.imshow('Video', sky)

    if cv2.waitKey(1) == 27:
        exit(0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM