我在 Windows 10 64 位上使用 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,但我的网络摄像头仍然没有实时视频。
最佳答案
我终于让我的网络摄像头能够正确显示 Visual Studio C++ OpenCV。这是我所做的:
- 使用 C++ 和 Python 工具安装 Visual Studio 2015。
- 下载并解压 OpenCV 3.4.2
- 添加到路径 C:\<...>\opencv\build\x64\vc14\bin
- 在 Visual Studio 2015 中,创建一个 Win32 CONSOLE 应用程序。
- 右键单击您的项目并选择属性。进行以下更改:
一个。 C/C++ - 通用 - 附加包含目录:C:\<...>\opencv\build\include
链接器 - 常规 - 附加库目录:C:\<...>\opencv\build\x64\vc14\lib
链接器 - 输入:opencv_world342d.lib
谢谢大家的回复!
关于python - 对于 OpenCV,我的 Python 代码可以显示网络摄像头,但我的 C++ 不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335082/