Opencv 使用cvMat写入cvGetImage时出现问题
我在从cvMat写入图像时遇到问题 这就是我所做的Opencv 使用cvMat写入cvGetImage时出现问题,opencv,Opencv,我在从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(lab
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);//其中标签类型为long*/
要检查值,我将每个像素值转储到文本文件中,并转储图像
IplImage* labelImg;
IplImage imageHeader;
labelImg = cvGetImage(labelMat, &imageHeader);
现在,当我用转储文本文件中的相应值交叉检查像素强度时,我发现不匹配。我觉得我在文本文件中得到了正确的值,但在图像中得到了错误的值
有人能帮忙找出错误吗
---------------------新增------------------- 我仍然面临这个问题。我已经上传了我的。我将解释我面对错误的确切位置 库已使用:与openCV一起,我正在使用不相交的boost库集合 基本上,我是在做连接组件标签。 出于调试目的,对于第20帧,我将每个像素的标签信息转储到a)文本文件以及b)强度级别与像素最终标签相同的图像中。因此,我希望文本和图像中的值相同。但事实并非如此。我不知道为什么。文本文件显示正确的值,但不显示图像。我在Matlab中检查图像的像素值(我在Matlab中已经注意到索引从1开始不是0) 我的文本文件 a) (frame20final.txt)在grimsongm.cpp/conmplabeling()中填充。 b) (frame20image.txt)在main.cpp中填充 我转储的图像(frame ccs.jpg)将填充到main.cpp中 两个文本文件获得相同的值所以从CvMat写入图像时一定有错误。 测试视频: 你也可以尝试任何其他视频 提前感谢,,
考希克你的问题太简单了 您希望使用CvMat,在使用CvMat进行操作后,您希望像绘制图像一样绘制CvMat 您必须创建imageHeader,类似这样的内容
CvMat* mat = cvCreateMatHeader(rows, cols, type);
mat->step = 4 * (mat->cols * CV_ELEM_SIZE1(mat->type) * CV_MAT_CN(mat->type) / 4 + 1);//critical
cvCreateData(mat);
cvShowImage
打印图像,如果您想转换为IplImage
只需简单地施展IplImage*img=labelMat 你的问题太简单了 您希望使用CvMat,在使用CvMat进行操作后,您希望像绘制图像一样绘制CvMat 您必须创建imageHeader,类似这样的内容
CvMat* mat = cvCreateMatHeader(rows, cols, type);
mat->step = 4 * (mat->cols * CV_ELEM_SIZE1(mat->type) * CV_MAT_CN(mat->type) / 4 + 1);//critical
cvCreateData(mat);
cvShowImage
打印图像,如果您想转换为IplImage
只需简单地施展IplImage*img=labelMat 我明白为什么会出错。我在做压缩的.jpg图像中转储。当我使用.png时,这个问题得到了解决。我明白为什么会出现这个错误。我在做压缩的.jpg图像中转储。这在我使用.png时得到了解决,但cvGetImage不应该也像OpenCV 2.0中rics在Plus中解释的那样工作吗?它给出了错误:无法从“CvMat*”转换为“IplImage*”,但cvGetImage不应该也像OpenCV 2.0中rics在Plus中解释的那样工作吗?它给出了错误:无法从“CvMat*”转换为“IplImage*”请允许我欢迎您为了提醒大家,我们在这里通常会做三件事:1)当你得到帮助时,试着也给予帮助,回答你专业领域的问题2)3)当你看到好的问答时,给他们投票,因为系统的可信度是基于用户通过分享他们的知识而获得的声誉。另外,请记住接受能更好地解决您的问题的答案,如果有,请允许我欢迎您来到StackOverflow,并提醒我们通常在这里做的三件事:1)当您收到帮助时,尝试也给予帮助,回答您专业领域的问题2)3)当您看到好的问答时,请投票支持,因为系统的可信度是基于用户通过分享知识而获得的声誉。还记得接受更好地解决问题的答案,如果有的话,