【问题标题】:Opencv using camera with matplotlibOpencv 使用带有 matplotlib 的相机
【发布时间】:2015-08-15 12:11:31
【问题描述】:

我正在尝试创建一个程序,该程序将向我展示我正在捕获的视频的不同类型的渐变。这是我的代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt


cap = cv2.VideoCapture()

while(1):
    bleh, img = cap.read()

    laplacian = cv2.Laplacian(img,cv2.CV_64F)
    sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)
    sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)

    plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')
    plt.title('Original'), plt.xticks([]), plt.yticks([])
    plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')
    plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
    plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')
    plt.title('Sobel X'), plt.xticks([]), plt.yticks([])
    plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')
    plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])

    plt.show()

但是,我收到一条错误消息,指出无法将图像数据转换为浮点数。

当我将视频捕获替换为仅图像并将其直接馈送到拉普拉斯变换、sobelx 和 sobely 变换时,此程序可以工作。

我不能确定视频的 matplot 吗?

【问题讨论】:

  • 为我工作。 img的dtype是什么?

标签: python-2.7 opencv matplotlib


【解决方案1】:

我对你的代码有同样的问题,然后我改变了:

cap = cv2.VideoCapture()

到:

cap = cv2.VideoCapture(0)

成功了

这是因为 VideoCapture 需要知道在您的计算机上使用什么视频设备,如果您使用的是网络摄像头,那么您必须将 0 作为参数传递给函数

【讨论】:

    猜你喜欢
    • 2013-02-13
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2018-03-05
    • 2012-04-01
    • 2011-03-21
    • 2015-10-25
    相关资源
    最近更新 更多