初学C#的OpenCVsharp,霍夫圆变换时圆心如何定义 300C

VectorOfVec3f circles = new VectorOfVec3f();

        //Mat element = new Mat(, Size(13, 13));
        //Cv2.ImShow("Demo", source);
        //element = new Mat();
        //element=
        Cv2.HoughCircles(tempImage, HoughMethods.Gradient, 1.5, 50, 100, 100, 0, 0);
        for (int i = 0; i < circles.Size; i++)
        {

Point center = new Point((int)Math.Round(circles()), (int)Math.Round(circles(i,0))); //定义圆心

int radius = (int)Math.Round(circles.radius);

                            加黑一段的代码不知道这么写才对,求大神解惑,或者有没有opencvsharp的相关学习资料提供也相当感谢。
0

1个回答

首先,简单搜了一下,我没找到 opencvsharp的文档,没有用过c#调用opencv的库,但是学习方面从性能和资料上考虑你最好还是用c++来写
如果你只会c语言也没关系,opencv上不会需要你会高级的用法,c++并不那么难学,而且后面用到qt也很方便

第二个,你用霍夫变换会返回给你圆心坐标,你写的形式很像python的用法,python的是直接返回圆心坐标的数组里面了。
看你写的函数是返回类型匹不匹配的问题,element就是你要的circles,具体用什么类型的变量,你看看你的编译器或者opencvsharp reference手册

所以这一段代码,element是nx3维数组,前两维即element[n][0],element[n][1]是圆心,另外一维element[n][2]是半径.
Point类型是2维数组,element[n][0],element[n][1]用cvRound后的值给Point类型的center [0],center[1],剩下的看你想干什么了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【opencv练习24 - 霍夫圆变换——圆检测】
/***************************************************** 测试程序 【HoughCircle_Demo 霍夫圆变换——边缘检测】 时间:2016年8月30日 参数:src,输出数组,霍夫梯度,dp,最小圆心距,Canny阈值,累加阈值 HoughCircles( src_gray, circles, CV_HOUGH_GRADIENT, 1, sr
OpenCv使用摄像头进行霍夫圆变换识别圆形并返回圆心坐标
效果图: 代码的实现如下(底下有参数的解释): #include "stdafx.h" //---------------------------------【头文件、命名空间包含部分】---------------------------- // 描述:包含程序所使用的头文件和命名空间 //--------------------------------------------
【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
本篇文章中,我们一起探讨了OpenCV中霍夫变换相关的知识点,以及了解了OpenCV中实现霍夫线变换的HoughLines、HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircles函数的使用方法。此博文一共有四个配套的简短的示例程序,其详细注释过的代码都在文中贴出,且文章最后提供了综合示例程序的下载。 先尝鲜一下其中一个示例程序的运行截图:
OpenCV学习笔记-霍夫圆变换
霍夫圆变换的函数为:HoughCircles利用 Hough 变换在灰度图像中找圆CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, doubl
霍夫变换提取圆心坐标,并拟合直线
霍夫变换提取圆心坐标,并拟合直线
霍夫变换检测圆形原理分析
上一篇博客中简要描述了一下自己对霍夫变换检测直线的原理理解,现在说一下检测圆形的原理。 其实检测圆形和检测直线的原理差别不大,只不过直线是在二维空间,因为y=kx+b,只有k和b两个自由度。而圆形的一般性方程表示为(x-a)²+(y-b)²=r²。那么就有三个自由度圆心坐标a,b,和半径r。这就意味着需要更多的计算量,而OpenCV中提供的cvHoughCircle()函数里面可以设定半
霍夫圆 定位不准确的问题 粗定位
对虹膜进行Canny边缘检测后,然后把得到的图像进行霍夫圆检测,就发现了这样的问题!定位不精确,然后我还没有解决,先写下这个问题,日后解决! 如下图: 这里定位了很多的圆! 有时候把原图像输入后,霍夫圆根本检测不出来有圆…很尴尬啊! ...
opencv笔记二十二(霍夫变换检测圆)HoughCircles
核心步骤:中值滤波去噪声 hough圆检测原理: https://blog.csdn.net/zhazhiqiang/article/details/51097439 因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤 波。    基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:1. 检测边缘,发现可能的圆心  2. 基于第一步的基础上从候选圆...
Halcon_Hough变换检测直线,检测圆
本文对Hough line和Hough circle在Halcon中的实现进行了测试并进行相应的分析和总结。分享是一种美德~
c#图像处理-利用霍夫检测得到未知圆坐标半径
public Bitmap circle(Bitmap img) { int[, ,] A = new int[img.Width, img.Height, 100]; for (int x = 0; x < img.Width; x++) { for (int y =
opencv 霍夫圆检测
霍夫圆变换 霍夫圆变换的基本原理和上个教程中提到的霍夫线变换类似, 只是点对应的二维极径极角空间被三维的圆心点x, y还有半径r空间取代. 对直线来说, 一条直线能由参数极径极角  表示. 而对圆来说, 我们需要三个参数来表示一个圆, 如上文所说现在原图像的边缘图像的任意点对应的经过这个点的所有可能圆是在三维空间有下面这三个参数来表示了,其对应一条三维空间的曲线. 那么与二维的
霍夫圆变换(Hough)原理
霍夫圆变换是将二维图像空间中一个圆转换为该圆半径、圆心横纵坐标所确定的三维参数空间中一个点的过程,因此,圆周上任意三点所确定的圓,经Hough变换后在 三维参数空间应对应一点。该过程类似于选举投票过程,圆周上任意三个点为一选举人,而这三个点所确定的圆则为一侯选人(以下称为候选圆〉。遍历圆周上所有点,任意三个点所确定的候选圆进行投票。遍历结束后,得票数最高点(理论上圆周上任意三点确定的圆在Hough
OpenCV——霍夫圆实现简单的圆检测
1.原理 圆周上任意三点所确定的圆,经Hough变换后在三维参数空间应对应一点。遍历圆周上所有点,任意三个点所确定的候选圆进行 投票。遍历结束后,得票数最高点(理论上圆周上任意三点确定的圆在Hough变换后均对应三维参数空间中的同一点)所确定的圆 即为该圆周上,绝大多数点所确定的圆(以下称为当选圆),即绝大多数点均在该当选圆的圆周上,以此确定该圆。 2.API介...
【数字图像处理】利用霍夫变换检测圆形
Hw7_1300012710_高飙   Ø  【作业要求】 Write your own imfindcircles() to simulatematlab function imfindcircles(). The attached images are for testing. Submit your code, result and report. Ø  【文件说明】 main.
matlab 霍夫变换—检测圆
function [hough_space,hough_circle,para] = hough_circle(BW,step_r,step_angle,r_min,r_max,p)      % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   % input   % BW:二值图像;   % step_r:检测的圆半径步
OpenCV霍夫圆检测调参心得
前几天去面试的师兄,发了一道OpenCV的题目给我,要我一天做出来。题目如下: 检测出这张图片的三个不同其他的点,我的第一个想法是霍夫圆检测或者是寻找外轮廓。最后我放弃了寻找外轮廓,因为其检测的轮廓与轮廓之间的距离不能设置,这样我并不能知道,这三个点是否会被其他轮廓包含,从而导致每个轮廓并不是包含一个圆。排除掉寻找外轮廓,就剩下了霍夫圆检测。但我只在书本上了解过霍夫圆检测,并不知道O
图像处理之霍夫变换圆检测算法
演示应用Hough变换检测图像中得圆,得到检测目标,详解讲述了这一算法过程 并且展示了算法运行的效果. 讨论了hough变换检测的先决条件.
霍夫圆变换、霍夫直线变换算法实现
霍夫直线变换,利用梯度方向加快计算速度. 参考资料: http://en.wikipedia.org/wiki/Hough_transform
OpenCV霍夫变换系列(中篇)-霍夫圆变换
关于统计概率的霍夫线变换源码在下篇补上(我还没来得及去看),这次直接按照流程把霍夫圆变换撸一遍。
opencv轮廓检测之椭圆检测-----算法篇(7)--Hough transform检测圆
关于霍夫变换,  首先看看wiki的介绍     https://en.wikipedia.org/wiki/Hough_transform     http://www.iro.umontreal.ca/~mignotte/IFT6150/ComplementCours/HoughTransform.pdf     霍夫变换检测     用霍夫变换检测圆, 有 以下几种情况 1.圆
霍夫变换(直线和圆)
霍夫变换是一种在图像中寻找直线和圆及其它简单形状的方法。 霍夫线变换原理:二值图像中的任何点都可能是一些直线集合的一部分,例如在原始图像上的一条直线表示为y = ax + b ,这是原始图像上以x和y为坐标系进行表示的,但是如果我们以a和b为新的变量坐标,那么在新的图像中,某一个点代表了所有过原始图像上点的直线。 CvSeq * cvHoughLines2 (CvArr * image, vo
霍夫变换圆形检测(基于OpenCV&Python)
简述基于python使用opencv实现在一张图片中检测出圆形,并且根据坐标和半径标记出圆。不涉及理论,只讲应用。相关函数函数说明: Python: cv2.HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) → circles 参数说明: ima
Python学习16_霍夫圆和椭圆变换
转自:http://www.cnblogs.com/denny402/p/5160061.html 在极坐标中,圆的表示方式为: x=x0+rcosθ y=y0+rsinθ 圆心为(x0,y0),r为半径,θ为旋转度数,值范围为0-359 如果给定圆心点和半径,则其它点是否在圆上,我们就能检测出来了。在图像中,我们将每个非0像素点作为圆心点,以一定的半径进行检测,如果有一个点在圆
Hough变换检测圆
Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。圆的方程为:(x-a)^2+(y-2)^2=r^2,通过Hough变换,将图像空间对应到参数空间。附录中的MATLAB程序为网上比较常见的,实际运行中存在一些问题,这里进行些修改。     原理:     霍夫变换是图像处理中从图像中识别几何形状的基本方法之一
opencv霍夫变换检测圆cvHoughCircles和直线cvHoughLines2的应用
1)cvHonghLines2:直线 2)cvHoughCircles:该函数用Hough变换在二值图像中中寻找圆 3)cvCircle:是指绘制圆形的一个程序函数 4)cvLine:简单的绘制直线函数 5)cvLoadImage:载入图像的函数
【opencv学习笔记】022之霍夫圆变换
1.原理介绍opencv中实现霍夫圆变换原理其实很简单的,初中生都会的,所以大家不要担心了啦,看下面这张图片,你看到了啥?对,没错,就是两根直线,四个圆,四个点,四个点分别是四个圆的圆心。并且四个圆大小是一样的(看着一样哈,大家就当一样吧,别用尺规作图去验证了)大家根据自己的理解去找对应关系啊!虽然本人学数学,但是美术不行啊!!!三个绿点点,对对对就是那三个,都是中间圆的圆上的一点,这样外面三个...
OpenCV霍夫变换识别圆
打算用openCV的 cvHoughCircles去识别实心的黑圆。但是cvHoughCircles的效果并不好,会检测出很多并不存在的拟合圆。因此还需在霍夫变换的基础上限定一些条件,对识别出的圆进行check。 因为我想要识别的是实心圆,所以会对霍夫变换后的结果进行判断,圆心周围是否都是黑点,是否是实心圆。 还加入了圆度公式对霍夫变换后的结果进行check:圆度D = 4πS/(L*L)。当
利用霍夫梯度法进行圆检测的原理概要及OpenCV代码实现
霍夫圆变换的基本原理与霍夫线变换原理类似,对直线检测而言,一条直线可由极坐标参数r和θ确定,对于圆来说,则需要三个参数来确定一个圆(为什么是三个,圆心坐标需要两上参数,还要加上一个半径)。标准霍夫圆变换还是将直角坐标转换到描述圆的三维度空间中,然后使用这三个维度进行累加度量(投票),根据投票的结果判断是否为圆。要理解这段话,请先看我的博文:利用霍夫变换做直线检测的原理及OpenCV代码实现 图像...
C# EMGU 3.4.1学习笔记(八)示例程序:霍夫圆变换HoughCircles函数
霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,跟霍夫线变换一样,也是通过投票,生成累积坐标平面,设置一个累积权重来定位圆。 在笛卡尔坐标系中圆的方程为: 其中(a,b)是圆心,r是半径,也可以表述为: 即: 所以在abr组成的三维坐标系中,一个点可以唯一确定一个圆。 而在笛卡尔的xy坐标系中经过某一点的所有圆映射到abr坐标系中就是一条三维...
OpenCV霍夫梯度找圆算法
OpenCV使用霍夫梯度算法检测图像中的圆。 算法步骤如下 用Canny算法进行边缘检测,得到一副边缘的二值图用Sobel算子计算图像的梯度图遍历边缘图中的非0点,沿着梯度方向和反方向求线段(梯度方向为圆弧的法线方向,即半径方向),线段的起点和长度由允许的半径区间决定。对线段经过的点在累加器中记数对累计器中的可能圆心按计数值从大到小排序,求半径
Hough Transform(霍夫变换)检测Circle(圆)的几种方法
使用霍夫变换检测图像中的直线,圆等图形是利用图形函数的从直角坐标系到极坐标系的转换。 比如检测直线中,直线方程y = k * x + b  ,   直线上的所有点都对应着参数( k , b), 给定一个点(x0 , y0)我们能够得到通过这个点的所有直线的参数(k , b),易知同一条直线上的点对应的参数(k , b)是相同的 利用此信息,我们建立k , b 的累加器,依次计算图像中提取出的
霍夫直线变换和霍夫圆变换的原理和实现
一、霍夫直线的原理 (1)本部分大部分学习来自《OpenCV3编程入门》,另外有一些自己的理解 如上图所以,将一条直线由截距是表示为在极坐标系下 化简为 (2)对于一个点(x0,y0)来说,可以通过这个点的一族直线统一定义为 每一对  代表一条通过点(x0,y0)的直线。 (3)如果对于一个给定点(x0,y0),我们在极坐标对极径极角平面绘制出所有通过它的直线,将会得到...
Emgu CV3+C#图像处理(六):霍夫圆检测/线检测 & 矩形/三角形检测
环境Win7-64+VS2012+EmguCV3.0.0 霍夫圆检测 使用Hough变换在灰度图像中查找圆圈:HoughCircles() public static CircleF[] HoughCircles( IInputArray image,//输入图像,8位单通道灰度图像 HoughType method,//检测方法使用。目前,唯一实现的方法是CV_HOUGH_...
opencv学习笔记(二十五)霍夫圆变换
霍夫圆变换与之前所描述的霍夫直线变换是大体上是类似的。说“大体上类似”的原因是——如果想要尝试完全类似——累加平面会被三维的累加容器所代替:在这三维中,一维是x,一维是y,另一维是圆的半径r。这就意味着需要大量的内存但速度却很慢。在OpenCV的应用中可以通过一个比较灵活的霍夫梯度法来解决圆变换的这一问题。 霍夫梯度法的原理如下。首先对图像应用边缘检测(这里用cvCanny ( )。然后,对边缘图
OpenCV霍夫圆检测
OpenCV霍夫圆检测,检测出图像中的圆,输出圆的半径和圆心信息,并根据半径的大小进行筛选(VS2010+OpenCv2.4.7)
霍夫梯度法测圆
霍夫圆变换的基本原理与霍夫线变换原理类似,对直线检测而言,一条直线可由极坐标参数r和θ确定,对于圆来说,则需要三个参数来确定一个圆(为什么是三个,圆心坐标需要两上参数,还要加上一个半径)。标准霍夫圆变换还是将直角坐标转换到描述圆的三维度空间中,然后使用这三个维度进行累加度量(投票),根据投票的结果判断是否为圆。但是转换到三维度空间,很明显,计算量是几何级增大,所以我们不可能用这个来实现圆检测法,所...
opencv圆形检测,霍夫变换不稳定
opencv圆形检测,霍夫变换不稳定 霍夫变换
基于opencv利用霍夫变换实现圆形物体的检测
在http://blog.csdn.net/piaoxuezhong/article/details/58587907中对霍夫变换实现直线检测进行了汇总,这篇对霍夫变换实现圆形检测进行汇总~ 参考: http://blog.csdn.net/zhaocj/article/details/50454847
关于hough圆弧检测C++程序的问题
需要用到一个圆弧检测的程序,苦于网上没有C++版的,自己根据MATLAB函数写了一个,自己感觉没什么问题,编译也可以通过,但结果就是很奇怪,求各位大咖帮忙,新手,小白一个。。。。 void hough_circle(IplImage *BW,double step_r,double step_angle,double r_min,double r_max,double p) {
霍夫变换圆检测算法
地址:http://blog.csdn.net/jia20003/article/details/17252807
文章热词 H.264整数变换矩阵变换 H.264整数变换预测残差 H.264整数变换系数矩阵例题 维矩阵理离散余弦变换 卷积神经网络结构定义
相关热词 c++ hough变换识别圆 c# 霍夫直线 c# 定义属性时默认值 python初学 初学python选择教程