OpenCV程序在退出时崩溃linux(使用cvtColor)

Posted

技术标签:

【中文标题】OpenCV程序在退出时崩溃linux(使用cvtColor)【英文标题】:OpenCV program crashes linux when exiting (using cvtColor) 【发布时间】:2014-11-12 02:08:20 【问题描述】:

我使用 OpenCV 制作了一个工作应用程序,该应用程序在程序完成后会导致 linux mint 崩溃(返回 0;)。

我已将代码缩小到下面的 sn-p。当使用函数 cvtColor 时,程序会崩溃。当代码运行时,没有什么奇怪的事情发生,而 cvtColor 正在做它的工作。

我不是 c/c++ 程序员,我什至不知道在哪里可以进一步了解导致此问题的原因或如何找到可以帮助我在 google 上找到解决方案的东西。

有人能指出正确的方向吗?

OpenCV 版本:3.0 运行于:3.11.0-12-generic #19-Ubuntu x86_64 x86_64 x86_64 GNU/Linux

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <string>

using namespace std;
using namespace cv;


int main( int argc, char** argv )

    Mat frame1;
    Mat grayImage1;

    frame1 = imread("lena.jpg");

    cvtColor(frame1, grayImage1, COLOR_RGB2BGR);

    return 0;

【问题讨论】:

您是否使用了正确的库(例如调试与发布)? “崩溃”是什么意思?有错误信息吗? Linux 冻结了大约 2 分钟,然后似乎 x 服务器已重新启动。我没有任何错误消息,可能是因为在它冻结之前我看不到它们。屏幕“崩溃”时会显示一些奇怪的模式,并通过重新启动 x 自行恢复。 【参考方案1】:

OpenCV 3.0 似乎仍处于 alpha 阶段,因此我建议您尝试使用稳定版本并检查是否存在相同的问题。

【讨论】:

就是这样。我从 git 编译了 master,不知道它是一个 alpha 版本。我检查了 2.4.10.1 版本,编译并安装它并且它可以工作。现在必须进行一些重构,但我很高兴。谢谢!【参考方案2】:

我不知道这是否会导致崩溃,但一个潜在的问题是从 RGB 到 BGR 的转换。

您可能想改为执行COLOR_BGR2RGB,因为数据最初存储为BGR

【讨论】:

老麦当劳有个农场,哎呀呀呀。

以上是关于OpenCV程序在退出时崩溃linux(使用cvtColor)的主要内容,如果未能解决你的问题,请参考以下文章

简单的 C++ OpenCV imshow 示例因分段错误而崩溃

使用 Qt 的程序,OpenCV 从 VS 启动时运行良好,但在使用 OpenCV 功能时运行可执行文件通常会崩溃

Qt Creator 在尝试运行 OpenCV 程序时崩溃。 [ntdll.dll 崩溃]

执行 Opencv 程序时系统崩溃

用于Mac / Linux崩溃的Windows getch()相当于

android-在崩溃或退出时远程重启应用程序