【问题标题】:I'd like to know the meaning of cv error我想知道cv error的含义
【发布时间】:2013-09-23 05:28:36
【问题描述】:

我在 android 中使用 QCAR,并尝试将 QCARImage 转换为 cvMat 并使用 cvtColor 更改颜色。

我在cvtColor中得到了以下错误,我想知道这个错误的含义。 (dcn == 3 || dcn == 4), scn == 2 和 depth == CV_8U 分别是什么意思?

09-23 14:12:54.944: E/cv::error()(23942): OpenCV 错误: 断言失败 ((dcn == 3 || dcn == 4) && scn == 2 && depth = = CV_8U) in void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int), 文件 /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp ,第 3389 行 09-23 14:12:54.944: A/libc(23942): 致命信号 11 (SIGSEGV) 在 0xdeadbaad (code=1), 线程 23963 (Thread-884)

这是我的代码

QCAR::State state = QCAR::Renderer::getInstance().begin();

// Explicitly render the Video Background
QCAR::Renderer::getInstance().drawVideoBackground();

//get the captured frame of camera
QCAR::Image *img = NULL;
QCAR::Frame frame = state.getFrame();
//getting qcar::image data from QCAR
for (int i = 0; i < frame.getNumImages(); ++i) {
    const QCAR::Image *QCARimage = frame.getImage(i);
    LOGD("format %d", QCARimage->getFormat());
    if (QCARimage->getFormat() == QCAR::RGB565) {
        img = (QCAR::Image*) QCARimage;
        break;
    }
}

if(img){
    //converting to mat
    Mat capture = Mat(img->getHeight(), img->getWidth(), CV_8UC3, (unsigned char *)img->getPixels());

cvtColor(capture, capture, CV_BGR5652BGR, 0);
}

对不起,我的英语不好。

【问题讨论】:

    标签: android c++ opencv


    【解决方案1】:

    断言消息非常神秘,解释如下:

    scndcn 分别是源图像和目标图像中的通道数。而depth,嗯,就是源图像和目标图像的深度。

    所以,在英文中,这意味着您的输入图像必须具有 CV_8UC2 类型(因为 5+6+5=16 位=2 字节),并且您的目标图像必须具有 CV_8UC3 或 CV_8UC4 类型。

    此外,您无法就地进行转换,因此(希望)正确的代码应如下所示:

    Mat capture = Mat(img->getHeight(), img->getWidth(), CV_8UC2, (unsigned char *)img->getPixels());
    Mat converted = Mat(img->getHeight(), img->getWidth(), CV_8UC3);
    cvtColor(capture, converted, CV_BGR5652BGR, 0);
    

    【讨论】:

    • 感谢您的回复!我在这个问题上卡了半天,但现在完全解决了。
    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多