【问题标题】:For OpenCV, my Python code can display webcam, but my C++ cannot对于 OpenCV,我的 Python 代码可以显示网络摄像头,但我的 C++ 不能
【发布时间】: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,但我的网络摄像头仍然没有实时视频。

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

我正在运行的 C++ 代码的屏幕截图:

【问题讨论】:

  • 我觉得奇怪,你的代码是正确的,检查你是否缺少一些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 和链接器设置。

标签: python c++ opencv webcam


【解决方案1】:

我终于让我的网络摄像头正确显示在 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

b.链接器 - 常规 - 附加库目录:C:\<...>\opencv\build\x64\vc14\lib

c。链接器 - 输入:opencv_world342d.lib

感谢大家的回复!

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 2019-06-29
    • 2017-05-28
    • 2020-03-06
    • 2021-11-17
    • 2012-08-08
    • 2011-12-21
    • 2011-02-05
    相关资源
    最近更新 更多