缺点 霍夫圆_opencv::霍夫圆变换

霍夫圆检测原理

从平面坐标到极坐标转换三个参数

假设平面坐标的任意一个圆上的点,转换到极坐标中:

处有最大值,霍夫变换正是利用这个原理实现圆的检测。

cv::HoughCircles

因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。

基于效率考虑,Opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:

. 检测边缘,发现可能的圆心

. 基于第一步的基础上从候选圆心开始计算最佳半径大小

HoughCircles(

InputArray image, // 输入图像 ,必须是8位的单通道灰度图像

OutputArray circles, // 输出结果,发现的圆信息

Int method, // 方法 - HOUGH_GRADIENT

Double dp, // dp = 1;

Double mindist, // 10 最短距离-可以分辨是两个圆的,否则认为是同心圆- src_gray.rows/8

Double param1, // canny edge detection low threshold

Double param2, // 中心点累加器阈值 – 候选圆心

Int minradius, // 最小半径

Int maxradius //最大半径

)

int main(int argc, char** argv) {

Mat src, dst;

src = imread(STRPAHT3);

if (!src.data) {

printf("could not load image...\n");

return -;

}

Mat moutput;

//中值滤波medianBlur

medianBlur(src, moutput, );

cvtColor(moutput, moutput, CV_BGR2GRAY);

//基于灰度空间

vector pcircles;

HoughCircles(moutput, pcircles, CV_HOUGH_GRADIENT, , , , , , );

src.copyTo(dst);

//重新传回rgb色彩空间

cvtColor(dst, dst, CV_BGR2GRAY);

for (size_t i = ; i < pcircles.size(); i++) {

Vec3f cc = pcircles[i];

circle(dst, Point(cc[], cc[]), cc[], Scalar(, , ), , LINE_AA);

circle(dst, Point(cc[], cc[]), , Scalar(, , ), , LINE_AA);

}

imshow("OUTPUT_TITLE", dst);

waitKey();

}

opencv —— HoughCircles 霍夫圆变换原理及圆检测

霍夫圆变换原理 霍夫圆变换的基本原理与霍夫线变换(https://www.cnblogs.com/bjxqmy/p/12331656.html)大体类似. 对直线来说,一条直线能由极径极角(r,θ)表 ...

【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

http://blog.csdn.net/poem_qianmo/article/details/26977557 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog ...

学习 opencv---(13)opencv霍夫变换:霍夫线变换,霍夫圆变换

在本篇文章中,我们将一起学习opencv中霍夫变换相关的知识点,以及了解opencv中实现霍夫变换的HoughLines,HoughLinesP函数的使用方法,实现霍夫圆变换的HoughCircles ...

【OpenCV新手教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/26977557 作者:毛星云(浅墨) ...

OpenCV中的霍夫线变换和霍夫圆变换

一.霍夫线变换 霍夫线变换是OpenCv中一种寻找直线的方法,输入图像为边缘二值图. 原理: 一条直线在图像二维空间可由两个变量表示, 例如: 1.在 笛卡尔坐标系: 可由参数: (m,b) 斜率和截 ...

OpenCV 霍夫线变换

#include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #i ...

霍夫圆检测 opencv

进行霍夫圆变换中有一个API:HoughCircles(). 第五个参数为double类型的minDist(),为霍夫变换检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离. ...

python数字图像处理(16):霍夫圆和椭圆变换

在极坐标中,圆的表示方式为: x=x0+rcosθ y=y0+rsinθ 圆心为(x0,y0),r为半径,θ为旋转度数,值范围为0-359 如果给定圆心点和半径,则其它点是否在圆上,我们就能检测出来了 ...

随机推荐

SICP练习记录

-------------求一个数的平方根(牛顿法平方根求解法): (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt ...

【CodeVS 1198】【NOIP 2012】国王游戏

http://codevs.cn/problem/1198/ 推导一翻,排好序后,直接上高精度. #include #include #inc ...

Java——Image 图片切割

package com.tb.image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io ...

delphi 常用属性+方法+事件+代码+函数

内容居中(属性) alignment->tacenter mome控件 禁用最大化(属性) 窗体-> BorderIcons属性-> biMaximize-> False 让鼠 ...

thinkphp action.class.php 学习

控制器类(Action) 描述 Description ThinkPHP Action控制器基类 抽象类 位置:ThinkPHP/Lib/Core/Action.class.php 声明: abstr ...

Kudu存储实战笔记

有人会问,为啥要用这个叫啥Kudu的,Kudu是啥? 就像官网所说,Kudu是一个针对Apache hadoop 平台而开发的列式存储管理器,在本菜鸟看来,它是一种介于hdfs与hbase的一种存储. ...

CMDB服务器管理系统【s5day89】:采集资产之汇报信息

1.服务器端收到的数据和客户端的数据不一样 print(request.post) 少发了,还是少取了,说明根本没有把数据全发过来 print(request.body) 1.只把字典的key给我发过 ...

ubuntu 上安装node.js 的简单方法

一.安装 1.$ sudo apt-get install nodejs 2.$ sudo apt-get install npm 二.升级     1.升级npm命令如下: $ sudo npm i ...

Programming internal SRAM over SWD

https://github.com/MarkDing/swd_programing_sram // // Copyright (c) 2013 SILICON LABORATORIES, INC. ...

基于py3和pymysql的数据库查询,查询某几列的数据

#python3 #xiaodeng #基于py3和pymysql的数据库查询,查询某几列的数据 import pymysql conn=pymysql.connect(....) cur=conn. ...

你可能感兴趣的:(缺点,霍夫圆)