问题描述
- opencv3.0霍夫圆书上的程序 不知道为什么会报错
-
//我把HoughCircle()之后的都注释掉了,不知道为什么会在最后return 0的时候报错,应该是vector的堆损坏了//-----------------------------------【头文件包含部分】--------------------------------------- // 描述:包含程序所依赖的头文件 //---------------------------------------------------------------------------------------------- #include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> //-----------------------------------【命名空间声明部分】--------------------------------------- // 描述:包含程序所使用的命名空间 //----------------------------------------------------------------------------------------------- using namespace cv; using namespace std; //-----------------------------------【main( )函数】-------------------------------------------- // 描述:控制台应用程序的入口函数,我们的程序从这里开始 //----------------------------------------------------------------------------------------------- int main() { //【1】载入原始图和Mat变量定义 Mat srcImage = imread("66.jpg"); //工程目录下应该有一张名为1.jpg的素材图 Mat midImage,dstImage;//临时变量和目标图的定义 //【2】显示原始图 imshow("【原始图】", srcImage); //【3】转为灰度图,进行图像平滑 cvtColor(srcImage, midImage, CV_BGR2GRAY);//转化边缘检测后的图为灰度图 GaussianBlur(midImage, midImage, Size(9, 9), 2, 2); //【4】进行霍夫圆变换 vector<Vec3f> circles; //用destImage代替circles不会报错,不过这样就没意义了 //HoughCircles(midImage, dstImage, CV_HOUGH_GRADIENT, 1.5, 10, 200, 100, 0, 0); HoughCircles(midImage, circles, CV_HOUGH_GRADIENT, 1.5, 10, 200, 100, 0, 0); //【5】依次在图中绘制出圆 /*for (size_t i = 0; i < circles.size(); i++) { Point center(cvRound(circles[i][0]), cvRound(circles[i][1])); int radius = cvRound(circles[i][2]); //绘制圆心 circle(srcImage, center, 3, Scalar(0, 255, 0), -1, 8, 0); //绘制圆轮廓 circle(srcImage, center, radius, Scalar(155, 50, 255), 3, 8, 0); } //【6】显示效果图 imshow("【效果图】", srcImage); waitKey(0);*/ circles.clear(); return 0; }
出这个对话框
0x00007FF77358433E 处(位于 opencvtext.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
解决方案
http://bbs.csdn.net/topics/391909333
解决方案二:
我也碰到这个问题,还没有解决。
我还碰到个见鬼的事:我某一次建的项目的代码可以跑,然而同样的代码复制到另一个项目特么就不能跑了!!!!妈的智障!!!
解决方案三:
你有尝试过设断点跟踪吗?我试了下,我碰到的问题是每次他都会出现radius小于0的圆。加上圆的半径阀值之后又一直找到无数个圆,感觉是3.0之后这个算法有问题。我用的是3.1.
我又去看我那个可以跑起来的项目,每次都是一个圆都找不到,也蛮见鬼的。你是一样的问题吗?如果是的话感觉应该就是源代码的问题了
时间: 2024-12-15 11:02:50