opencv - cvQueryFrame 产生 msvcrt 访问错误

标签 opencv visual-studio-2012 msvcrt

这里是新用户,也是使用 OpenCV 编程的新手。

我使用的是 Visual Studio 2012,并且按照说明安装了所有 OpenCV 模块,运行代码捕获视频流和过滤器/等没有问题。

我正在尝试在此处重现斯坦福大学制作的光流示例代码: http://robots.stanford.edu/cs223b05/notes/CS%20223-B%20T1%20stavens_opencv_optical_flow.pdf

但似乎遇到了 cvQueryFrame 的访问冲突错误,所以我编写了一个简单的函数来测试该问题:

   int get_flow(){
    CvCapture *input_video = cvCaptureFromFile("C:\\test.avi");
    cvQueryFrame(input_video);

    while(1){
    if( cvWaitKey( 15 )==32 )  //wait until space key pressed
        {
            break;
        }
    }

    return 0;
}

我已经检查过 test.avi 位于正确的位置,但每当任何代码(此代码或示例代码)运行 cvQueryFrame 命令时都会出现以下错误,如下所示:

First-chance exception at 0x75E6A048 (msvcrt.dll) in Win32Project3.exe: 0xC0000005: Access violation reading location 0x011908C0.
Unhandled exception at 0x75E6A048 (msvcrt.dll) in Win32Project3.exe: 0xC0000005: Access violation reading location 0x011908C0.

根据我的理解,这意味着 msvcrt.dll 发出有关访问特定内存点的错误,但我无法弄清楚问题是什么。

我单独使用 cvGrabFrame 没有问题,但是一起使用 cvGrabFrame 和 cvRetrieveFrame 或单独使用 cvRetrieveFrame 也会引发 msvcrt.dll 访问错误。

我不太确定在哪里查找错误或所有问题。我找不到任何特定的解决方案来处理这个问题。有任何想法吗? (PS - 我在 Debug模式下运行 VS2012,并且所有 opencv 库都在 x64 机器上以 x86 工作,并且 chrome 也打开了)

谢谢!

最佳答案

可能是您无法打开视频文件。并且由于该查询框架失败 您可以尝试以下代码来检查您是否真的能够打开视频文件,然后您可以在其上调用查询框架。

int main(int argc, char*argv[])
{

    char *my_file = "C:\\test.avi";
    std::cout<<"Video File "<<my_file<<std::endl;
    cv::VideoCapture input_video;

    if(input_video.open(my_file))
    {
         std::cout<<"Video file open "<<std::endl;
    }
    else
    {
        std::cout<<"Not able to Video file open "<<std::endl;

    }
    namedWindow("My_Win",1);
    namedWindow("Segemented", 1);
    Mat cap_img;
    for(;;)
    {
         input_video >> cap_img;
         imshow("My_Win", cap_img);
          waitKey(0);
    }
   return 0;
 }

关于opencv - cvQueryFrame 产生 msvcrt 访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320789/

相关文章:

python - Spatstat:给定二维点列表,如何将它们连接到多边形中,并进一步使其成为研究区域?

c++ - 如何加载 txt/.pgn.camera 文件并将其存储在 c++/opencv 的矩阵中

c - 在cygwin环境下使用opencv运行C程序

python-3.x - 当我收到 UnsatisfiableError : The following specifications were found to be in conflict: …? 时,如何在 anaconda 中创建环境

C# 设计 View 不会在 winform 中加载图形元素

c++ - 是否有关于更换 MS CRT 的最新引用资料?

visual-studio - Visual Studio 2017 上的简单汇编程序

c++ - LNK2005、LNK1169 错误, "int __cdecl g(void)"(?g@@YAHXZ) 已定义

c# - 无法安装字体

c++ - 如何强制 C++ 编译器使用特定的 CRT 版本?