基于颜色和圆对乒乓球识别_20170329

摘要:
“x=y=r=”<for(size_ti=0;i<circuits.size();I++)//找出图片中有多少个球{x[I]=cvRound(圆[I][0]);y[I]=cvRound(圆形[I][1]);z[I]=CV Round(圆圈[I][2]);}if(flag1==1)//检测到图像中存在球{flag1=0;

更新:调整算法,识别出一副图像中最近的球。球越近,图像显示的半径越大,所以只要找出图像中半径最大的球就是最近的球。底盘程序优先处理最近的球。

效果:可以准确的找出一副图像中最近的球。

TIP:  flag1:检测到图像中有球的标志位,1有0无。

         flag2:检测到图像中球的个数。

代码如下:

		HoughCircles(canny_output, circles, CV_HOUGH_GRADIENT, 1, 40, 250, 27, 4, 70);//霍夫变换检测圆

		cout << "x=	y=	r=" << endl;
		for (size_t i = 0; i < circles.size() ; i++)//找出一幅图里有几个球
		{


			x[i] = cvRound(circles[i][0]);
			y[i] = cvRound(circles[i][1]);
			z[i]= cvRound(circles[i][2]);
			flag1 = 1;    
			flag2 = i;		
		}
		if (flag1 == 1)//检测到图像中有球
		{
			flag1 = 0;//标志位置零
			if (flag2 == 0)//如果只检测到一个球
				num = 0;
			else//检测到多个球
			{
				int max = z[0];
				num = 0;
				for (int i = 1; i < flag2 + 1; i++)//对图中找到的球进行半径大小比对,选出半径最大的球
				{
					if (max < z[i])
					{
						max = z[i];
						num = i;//num只是用来记录第几个球最近,不用置零
					}
				}
			}
			a = x[num];// 把半径最大的球的信息进行赋值
			b = y[num];
			c = z[num];
			Point center(a, b);
			int radius = c;
			circle(imgOriginal, center, radius, Scalar(255, 255, 255), 5, 8, 0);
		}
		else//没有检测到球
		{
			a = 0;// 累加每幅图中最近球的坐标
			b = 0;
			c = 0;
		}
			cout << a << "	" << b << "	" << c << endl;//在控制台输出圆心坐标和半径
		}


免责声明:文章转载自《基于颜色和圆对乒乓球识别_20170329》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇网络IPC:套接字MySQL 8.0.11 GA版二进制安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTML标记之a标签

一、a标签的语法   <a href=”链接目标地址” title=”注释” target=”打开链接窗口的形式”>链接显示内容</a>     target值:       _blank在新窗口中打开;       _self 在自身窗口打开(默认);       _parent 在上一级窗口打开,框架会经常使用;       _...

SpringBoot整合JPA简单介绍

一、JPA介绍JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。 API用来操...

element-ui自定义table表头,修改标题样式、添加tooltip及 :render-header使用简介

修改列标题样式1.在列标题后面加一个图标。 以element-ui官方文档一个table表格为例,我们在地址的后面加一个定位标志的图标,代码如下: <template>   <el-table     :data="tableData2"     style=" 100%"     :row-class-name="tableRowCla...

JS转换Fri Oct 31 18:00:00 UTC+0800 2008格式

function Todate(num) { //Fri Oct 31 18:00:00 UTC+0800 2008 num = num + ""; var date = ""; var month = newArray(); month["Jan"] = 1; month["Feb"...

php Redis函数使用总结(string,hash,list, set , sort set )

  对于:string, set , sort set , hash 的增,改操作,是同一个命令,但是把它当改操作时,及时成功返回值依旧为0 对于:list结构来说,增删改查自有一套方法。   1 <?php 2 /*1.Connection*/ 3 $redis = new Redis(); 4 $redis-...

高德地图API之货车路线

货车路线: 引入 AMap.TruckDriving 注意:和驾车路线、步行路线不同的是,必须指定cidy和size,并且坐标传入为json格式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&g...