标签: imutils

使用 imutils VideoStream 访问 IP 摄像机

我正在使用下面的行从我的笔记本电脑摄像头获取视频流,效果很好。

vs = VideoStream(src=0).start()
Run Code Online (Sandbox Code Playgroud)

但现在,我希望来源是 IP 摄像头,而不是我的笔记本电脑摄像头。有没有办法像直接将 src 更改为摄像机的 IP 一样?我进行了全面搜索,最常见的是使用 cv2 VideoCapture 方法。我想知道该解决方案是否也适用于 VideoStream 功能。

谢谢!

video-streaming python-3.x imutils

6
推荐指数
1
解决办法
4365
查看次数

轮廓元组的长度必须为 2 或 3,否则 opencv 会再次更改其 cv.findcontours 签名

运行我的代码后,我收到错误消息轮廓元组必须具有长度2或3,否则opencv再次更改了它们的返回签名。我目前运行的是 opencv 3.4.3.18 版本。当我抓取运行 imutils ver 0.5.2 的轮廓时,会出现此问题

该代码查找计数并返回在进行一些边缘检测后找到的轮廓。然后该算法使用 imutils 来抓取轮廓。这是正确的处理方法还是有一些最新的方法来获取轮廓而不是使用 imutils?

请看下面的例子:

image, contours, hier = cv.findContours(edged.copy(), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)


cnts = imutils.grab_contours(contours)

cnts = sorted(contours, key = cv.contourArea, reverse = True)[:5]
Run Code Online (Sandbox Code Playgroud)

python opencv imutils

5
推荐指数
1
解决办法
5712
查看次数

opencv python imutils.grab_contours 和排序方法在 java/scala api 中不可用 我的 scala 代码实现不会产生相同的结果

我是 OpenCV 新手,按照本教程 ,这里是 Python 代码

   from imutils import paths
   import numpy as np
   import imutils
   import cv2
   import os
   rectKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (13, 5))
   sqKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (21, 21))
   image = cv2.imread("src/main/resources/passport/passport.jpg")
   image = imutils.resize(image, height=600)
   gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

   gray = cv2.GaussianBlur(gray, (3, 3), 0)
   blackhat = cv2.morphologyEx(gray, cv2.MORPH_BLACKHAT, rectKernel)

   gradX = cv2.Sobel(blackhat, ddepth=cv2.CV_32F, dx=1, dy=0, ksize=-1)
   gradX = np.absolute(gradX)
   (minVal, maxVal) = (np.min(gradX), np.max(gradX))
   gradX = (255 * ((gradX - minVal) / (maxVal - minVal))).astype("uint8")
      gradX …
Run Code Online (Sandbox Code Playgroud)

python opencv scala computer-vision imutils

5
推荐指数
0
解决办法
95
查看次数

多进程视频处理

我想对相邻帧进行视频处理。更具体地说,我想计算相邻帧之间的均方误差:

mean_squared_error(prev_frame,frame)
Run Code Online (Sandbox Code Playgroud)

我知道如何以线性直接的方式计算它:我使用 imutils包利用队列来解耦加载帧和处理它们。通过将它们存储在队列中,我不需要在处理它们之前等待它们。......但我想更快......

# import the necessary packages to read the video
import imutils
from imutils.video import FileVideoStream
# package to compute mean squared errror
from skimage.metrics import mean_squared_error

if __name__ == '__main__':

    # SPECIFY PATH TO VIDEO FILE
    file = "VIDEO_PATH.mp4" 

    # START IMUTILS VIDEO STREAM
    print("[INFO] starting video file thread...")
    fvs = FileVideoStream(path_video, transform=transform_image).start()

    # INITALIZE LIST to store the results
    mean_square_error_list = []

    # READ PREVIOUS FRAME
    prev_frame = fvs.read()

    # LOOP over frames …
Run Code Online (Sandbox Code Playgroud)

python opencv multiprocessing imutils

2
推荐指数
1
解决办法
794
查看次数