Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javacv中重塑IplImage_Java_Javacv_Reshape - Fatal编程技术网

在javacv中重塑IplImage

在javacv中重塑IplImage,java,javacv,reshape,Java,Javacv,Reshape,我正在尝试在javacv中调整IplImage图像的大小。我发现cvResize函数可以做这样的事情。我的工作流程是:打开图像,将其转换为灰度,将其调整为所需大小,最后对其进行重塑。我已经读过了,将其转换为灰度并调整大小。我的问题是什么?最后一步,重塑。我有一个CVREFORMATE,它符合我的要求。我有一个IplImage,我必须把它转换成cvMat。下一步是重塑,需要4个参数、一个cvArr和一个cvMat以及所需的尺寸 // read an image final IplI

我正在尝试在javacv中调整IplImage图像的大小。我发现cvResize函数可以做这样的事情。我的工作流程是:打开图像,将其转换为灰度,将其调整为所需大小,最后对其进行重塑。我已经读过了,将其转换为灰度并调整大小。我的问题是什么?最后一步,重塑。我有一个CVREFORMATE,它符合我的要求。我有一个IplImage,我必须把它转换成cvMat。下一步是重塑,需要4个参数、一个cvArr和一个cvMat以及所需的尺寸

    // read an image
    final IplImage image = cvLoadImage("ef.jpg");
    //create image window named "My Image"
    final CanvasFrame canvas = new CanvasFrame("My Image");
    // request closing of the application when the image window is closed
    canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
    // show image on window
    canvas.showImage(image);

    IplImage GrayImage = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);     
    cvCvtColor(image, GrayImage, CV_BGR2GRAY);

    IplImage img = IplImage.create(60, 60, IPL_DEPTH_8U, 1);
    //resize the image
    cvResize(GrayImage, img, CV_INTER_LINEAR); 
    cvSaveImage("4-rjb" + ".jpg", img);
    //cvReleaseImage(result1);

    System.out.println("The size of the image: "+img);
    CvMat mtx = CvMat.createHeader(img.height(), img.width());

    cvGetMat(img, mtx, null, 0);
    System.out.println(mtx);

    cvReshape(img, mtx, 3600, 1);
我收到错误信息:

   OpenCV Error: Bad number of channels () in unknown function, file .\src\array.cpp,  
   line 2721

我只想重塑2d图像,为什么会出现通道数错误???

通过一些谷歌搜索,我发现您的输出矩阵必须至少包含3个通道。(蓝色、绿色和红色)。其中蓝色和绿色将完全为空,您将灰度图像作为输出图像的红色通道。任何其他数量的通道都会导致出现错误。

是的,因此我的解决方案是创建ny自己的重塑:)!