使用 cv::split 的问题

Posted

技术标签:

【中文标题】使用 cv::split 的问题【英文标题】:Problems using cv::split 【发布时间】:2013-11-01 03:38:51 【问题描述】:

我正在使用 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 );

感谢您的宝贵时间。

【问题讨论】:

您的代码在我的带有 OpenCV2.4.5 的 PC 上运行良好。 您的代码现在与您的问题不同 我不确定是编辑整个问题还是创建一个新问题。无论如何,它现在可以正常工作,但前提是我将项目设置为 Release。还不能使用调试器。 【参考方案1】:

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

【讨论】:

以上是关于使用 cv::split 的问题的主要内容,如果未能解决你的问题,请参考以下文章