gpt4 book ai didi

cvWatershed 不支持的格式或格式组合

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:08 25 4
gpt4 key购买 nike

我在 Code::Blocks 上使用 C 中的 OpenCV 2.4.11,特别是通过 O'Reilly 书 Learning OpenCV。关于分水岭算法的部分有点短,所以我想我会尝试一下,看看它到底是如何工作的。但是,每次调用该函数时都会出现以下错误:

OpenCV Error: Unsupported format or combination of formats (Only 32-bit, 1-chann el output images are supported) in cvWatershed

到目前为止我的程序非常简单:

int main(int arg, int arg2) {
//open windows
cvNamedWindow("Input", 1 );
cvNamedWindow("Markings", 1 );

//load images
IplImage* input = cvLoadImage("ActualDoorPhoto.jpg", CV_LOAD_IMAGE_COLOR);
assert(input != NULL);

IplImage* markingstemp = cvLoadImage("ActualMarkingTest.jpg", CV_LOAD_IMAGE_COLOR);
assert(markingstemp != NULL);

//prepare markings
IplImage* markings = cvCreateImage(cvGetSize(markingstemp), 32, 1);
CvMat* markmat = cvCreateMat(input->width, input->height, CV_32FC1);

cvWatershed(input, markmat);

cvShowImage("Input", input);
cvShowImage("Markings", markings);
cvWaitKey(0);

return 0;
}

我已经尝试将标记和标记垫作为 cvWatershed 的第二个参数,以及其他一些东西(特别是在其上绘制了 markingstemp 轮廓的标记),但每次我都会遇到同样的错误。谁能告诉我我做错了什么?

最佳答案

您正在反转输出矩阵的维度。应该是:

CvMat* markmat = cvCreateMat(input->height, input->width, CV_32FC1);

格式也应该更改为 CV_32SC1

关于cvWatershed 不支持的格式或格式组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33897322/

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