OpenCV,cvCvtColor:null数组指针在函数cvgetmat中传递

时间:2015-04-09 13:12:29

标签: c opencv

我从openCV开始,我必须将它用于学校的项目。我在Windows上使用CodeBlocks。

我正在尝试编写一个非常简单的函数,将RGB格式的图像转换为HSV格式,然后显示Hue通道。

long traiter_image(IplImage* Image)
{
    IplImage* ImHSV = 0;
    IplImage* chans[3];
    cvCvtColor(Image, ImHSV, CV_BGR2HSV); // BGR to HSV

    // split channels
    cvSplit (ImHSV, chans[0], chans[1], chans[2], NULL);
    Afficher("Teinte",chans[0]); // Display Hue

    return 0;
}

我没有任何构建错误,但是当我执行代码时,会出现一个窗口,告诉我“在函数cvgetmat中传递了空数组指针”。问题来自cvCvtColor函数,但我不知道如何解决它......

1 个答案:

答案 0 :(得分:1)

在调用cvCvtColor()之前,您应该为输出图像创建内存,其大小和深度应与输入图像相同。

对于您的情况,它应该是:

IplImage* ImHSV = cvCreateImage(cvGetSize(Image), IPL_DEPTH_8U, 3);
cvCvtColor(Image, ImHSV, CV_BGR2HSV); // BGR to HSV