python - 对于 OpenCV,我的 Python 代码可以显示网络摄像头,但我的 C++ 不能

标签 python c++ opencv webcam

我在 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,但我的网络摄像头仍然没有实时视频。

我运行的 Python 代码的屏幕截图: Python Code

我运行的 C++ 代码的屏幕截图: Cpp Code

最佳答案

我终于让我的网络摄像头能够正确显示 Visual Studio C++ OpenCV。这是我所做的:

  1. 使用 C++ 和 Python 工具安装 Visual Studio 2015。
  2. 下载并解压 OpenCV 3.4.2
  3. 添加到路径 C:\<...>\opencv\build\x64\vc14\bin
  4. 在 Visual Studio 2015 中,创建一个 Win32 CONSOLE 应用程序。
  5. 右键单击您的项目并选择属性。进行以下更改:

一个。 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/

相关文章:

c++ - 在线段树中查询

c++ - setMouseCallback 将坐标传递给主函数

python - Opencv Blur 就在 Circle 内

python - Qt : Updating UI (with signals) from another class and thread

python - 如果 Bokeh 有很多图表,输出文件很重并且系统很慢

c++ - Hook 内部函数 : How do the the parameters look like?

c++ - 串行端口在调试中工作但不释放 c++ 代码块窗口

python - 表示子类类似于具有一个对象的父类(super class)的结构的最佳方式

python - 在 Fedora Linux 上的 Jupyter 中运行 Python 2 和 3

c++ - 如何创建具有 3 个维度的 Mat 对象?