gpt4 book ai didi

java - 在 javacv 中 reshape IplImage

转载 作者:行者123 更新时间:2023-12-02 06:18:58 24 4
gpt4 key购买 nike

我正在尝试在 javacv 中调整 IplImage 图像的大小。我发现 cvResize 函数可以做这样的事情。我的工作流程是:打开图像,将其转换为灰度,将其调整为所需的大小,最后对其进行整形。我已经阅读过它将其转换为灰度并调整其大小。我的问题是什么最后一步, reshape 。我有 cvReshape 可以满足我的要求。我有一个 IplImage,我必须将其转换为 cvMat。下一步是 reshape ,它需要 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

我只是想 reshape 二维图像,为什么会发生 channel 数错误?

最佳答案

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

关于java - 在 javacv 中 reshape IplImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21186146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com