【发布时间】:2018-12-22 10:08:46
【问题描述】:
我在 64 位 Windows 10 上使用 OpenCV 3.3.1、Python 3、最新的 C++ 和 Visual Studio 2017。
这是正确显示我的网络摄像头的 Python 3 代码:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
ret, last_frame = cap.read()
row, col, ch = last_frame.shape
if last_frame is None:
exit()
while(cap.isOpened()):
ret, frame = cap.read()
if frame is None:
exit()
cv2.imshow('frame', frame)
if cv2.waitKey(33) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
以下是不显示我的网络摄像头的 C++ 代码。此代码只显示一个灰框:
#include "opencv2/opencv.hpp"
using namespace cv;
#include <iostream>
using namespace std;
int main()
{
VideoCapture cap(0); // 1st device, DSHOW
while (cap.isOpened())
{
Mat frame;
cap >> frame;
imshow("ocv", frame);
int k = waitKey(10);
if (k == 27) break;
}
return 0;
}
有人可以帮我解决这个问题吗?我尝试将我的 C++ 修改为 VideoCapture cap(1)、VideoCapture cap(2)、VideoCapture cap(3) 和 VideoCapture cap,但我的网络摄像头仍然没有实时视频。
【问题讨论】:
-
我觉得奇怪,你的代码是正确的,检查你是否缺少一些dll,你也可以解释一下你是如何安装opencv的
-
为了快速响应我为 C++ 和 Visual Studio 2017 安装的 OpenCV,我按照以下视频中的说明进行操作:youtube.com/…。这些说明也可以在此处以文本形式提供:deciphertechnic.com/install-opencv-with-visual-studio 如果有帮助,我可以详细说明我的安装过程。
-
尝试运行发布版本而不是调试版本,因为人们有时会混淆他们的库链接。
-
@MarkSetchell 我将解决方案配置设置为发布,但这只会在我的 #include "opencv2/opencv.hpp" 上创建红色的摆动线
-
这表明您的设置在调试和发布之间有所不同,并且至少略有错误。您需要检查“include”(或“header”)文件所在位置的设置 - 抱歉,我不使用 MS 产品,因此无法告诉您实际名称。还要检查您的 DLL 和链接器设置。