关于CVFindcontours的问题求救

明源123 2013-12-26 03:46:18
为什么我已用到这个这个函数就开始报内存错误

...全文
816 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaoqiao2332 2016-08-21
  • 打赏
  • 举报
回复
我也出现了这个问题,然后看控制台打印出来的信息是这样的: OpenCV Error: Unsupported format or combination of formats ([Start]FindContours support only 8uC1 and 32sC1 images) in cvStartFindContours, file C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\imgproc\src\contours.cpp, line 196 说明是数据类型错误,然后仔细查看是因为img图像应该是32sC1或者8uC1的img,但是我的img是CV_32F,所以报错
赵4老师 2015-12-03
  • 打赏
  • 举报
回复
建议先编译链接调试OpenCV自带的相关例子代码。 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
Sherlock520 2015-12-03
  • 打赏
  • 举报
回复
解决了吗?一样的问题~~啊啊啊啊啊
明源123 2013-12-30
  • 打赏
  • 举报
回复
引用 4 楼 lelezbf 的回复:
IplImage*img=cvLoadImage("D://chepai01.jpg");改成IplImage*img=cvLoadImage("D:\\chepai01.jpg"),读不到图像当然会出错了
改了没用。
lelezbf 2013-12-27
  • 打赏
  • 举报
回复
IplImage*img=cvLoadImage("D://chepai01.jpg");改成IplImage*img=cvLoadImage("D:\\chepai01.jpg"),读不到图像当然会出错了
赵4老师 2013-12-27
  • 打赏
  • 举报
回复
先编译链接调试OpenCV自带的相关例子代码。
赵4老师 2013-12-27
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
明源123 2013-12-26
  • 打赏
  • 举报
回复
// shipinkonghzi.cpp : 定义控制台应用程序的入口点。 // #include"stdlib.h" #include "stdafx.h" #include "highgui.h" #include "cv.h" #include "cxcore.h" using namespace cv; using namespace std; int main(int argc, char* argv[]) { IplImage*img=cvLoadImage("D://chepai01.jpg"); IplImage*img_Gray=cvCreateImage(cvGetSize(img),8,1); IplImage*img_Threshold=cvCreateImage(cvGetSize(img),8,1); cvCvtColor(img,img_Gray,CV_BGR2GRAY); cvThreshold(img_Gray,img_Threshold,128,255,CV_THRESH_BINARY_INV); CvMemStorage*storage=cvCreateMemStorage(0); CvSeq*contours=NULL; cvNamedWindow("Window1",CV_WINDOW_AUTOSIZE); //cvNamedWindow("Window2",CV_WINDOW_AUTOSIZE); cvCopyImage(img_Threshold,img_Gray); //double t=(double)cvGetTickCount(); cvFindContours(img_Threshold,storage,&contours,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0)); //cvZero(img_Gray); cvDrawContours(img_Gray,contours,cvScalar(100),cvScalar(100),1); cvShowImage("Window1",img_Gray); cvWaitKey(0); cvClearMemStorage(storage); return 0; } 这是我的代码,大家帮忙看看吧

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧