C++ 使用cv::split时出现的问题

C++ 使用cv::split时出现的问题,c++,windows,opencv,visual-studio-2012,C++,Windows,Opencv,Visual Studio 2012,我正在使用OpenCV 2.4.6,并试图生成一些直方图。最初的示例代码从本地存储中获取了一幅图像,但我将其修改为使用VideoCapture对象。当代码到达cv::split()时,它会带来一个未处理的异常。它提示: “中0x5465B3D9(opencv_core246.dll)处未处理的异常” visionProject.exe:0xC0000005:访问冲突写入位置 0x1800E633。“ 我的代码是: VideoCapture camera;

我正在使用OpenCV 2.4.6,并试图生成一些直方图。最初的示例代码从本地存储中获取了一幅图像,但我将其修改为使用
VideoCapture
对象。当代码到达
cv::split()
时,它会带来一个未处理的异常。它提示:

“中0x5465B3D9(opencv_core246.dll)处未处理的异常” visionProject.exe:0xC0000005:访问冲突写入位置 0x1800E633。“

我的代码是:

            VideoCapture camera;
            camera.open(0);

            camera >> src;

            if( !src.data )
                { return -1; }

            /// Separate the image in 3 places ( B, G and R )
            vector <Mat> bgr_planes;
            split(src, bgr_planes );
摄像机;
照相机。打开(0);
摄像机>>src;
如果(!src.data)
{return-1;}
///将图像分为三个位置(B、G和R)
矢量bgr_平面;
拆分(src、bgr_平面);

谢谢你的时间。

多亏了一位朋友的帮助,我才得以工作。为了使
OpenCV
正常工作,我必须将构建设置为在visualstudio中发布。这样,它就可以正常工作。

您的代码在我的带有OpenCV2.4.5的PC上运行良好。您的代码现在与您的问题不同。我不确定是编辑整个问题,还是创建一个新问题。不管怎样,它现在工作正常,但前提是我将项目设置为构建为发行版。还不能使用调试器。