【发布时间】:2023-04-11 12:25:01
【问题描述】:
我在从 cvMat 写入图像时遇到问题。
这就是我所做的。
IplImage* low_threshold_mask = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 1);
CvMat* labelMat = cvCreateMat(low_threshold_mask->height,low_threshold_mask->width,CV_32F);
/* 我在函数中填充 labelMat 的元素。它是这样完成的: cvmSet(labelMat,r,c,label); // 其中 label 的类型是 long */
为了检查值,我将每个像素值转储到文本文件中并转储图像。
IplImage* labelImg;
IplImage imageHeader;
labelImg = cvGetImage(labelMat, &imageHeader);
现在,当我将像素强度与转储文本文件中的相应值进行交叉检查时,我发现不匹配。我觉得我在文本文件中得到了正确的值,但在图像中得到了错误的值。
谁能帮忙找出错误?
----------新增功能-------
我仍然面临这个问题。我已经上传了我的programs。我将解释我究竟在哪里面临错误。
库使用:与 openCV 一起,我正在使用 disjoint_sets 的 boost 库。
基本上我在做连接组件标签。 出于调试目的,对于第 20 帧,我已将每个像素的标签信息转储到 a)文本文件以及 b)强度级别与像素的最终标签相同的图像。所以我期望文本和图像中的值相同。但这并没有发生。我无法弄清楚为什么。文本文件显示正确的值,但不显示图像。我在 Matlab 中检查图像的像素值(我已经处理了 matlab 中的索引以 1 而不是 0 开头)。
我的文本文件 a) (frame20final.txt) 被填充到 GrimsonGMM.cpp/ConCompLabeling() 中。 b) (frame20image.txt) 被填充到 main.cpp 我的转储图像(frame-ccs.jpg)被填充到 main.cpp 中。
两个文本文件的值相同。 所以从 CvMat 中写入图像一定有一些错误。
测试视频:person15_walking_d1_uncomp.avi 您也可以尝试使用任何其他视频。
提前致谢, 考希克
【问题讨论】:
-
请允许我欢迎您来到 StackOverflow,并提醒我们通常在这里做的三件事:1) 当您获得帮助时,请尝试在您的专业领域中回答问题 2)
Read the FAQs3) 当你看到好的问答时,给他们投票using the gray triangles,因为系统的可信度是基于用户通过分享他们的知识而获得的声誉。还记得接受更好地解决您的问题的答案,如果有的话,by pressing the checkmark sign
标签: opencv