社区
C#
帖子详情
实现动态描画圆的问题
sosoben
2012-09-21 08:07:17
现在已有另外一个过程帮我不断地获取一些坐标点(基本上是在一个圆周上,但有时可能有错误的点)
现在我想每隔N个点就用这N个点计算它们围成的圆的圆心座标位置,并排除一些偏移太大的点,求算法,有程序函数的加分!!
再理想点,其实我想获取N+1个点后 , 第一个点的数据自动排除,在从2到N+1计算,如此类推,就像一个先入先出的队列
...全文
207
24
打赏
收藏
实现动态描画圆的问题
现在已有另外一个过程帮我不断地获取一些坐标点(基本上是在一个圆周上,但有时可能有错误的点) 现在我想每隔N个点就用这N个点计算它们围成的圆的圆心座标位置,并排除一些偏移太大的点,求算法,有程序函数的加分!! 再理想点,其实我想获取N+1个点后 , 第一个点的数据自动排除,在从2到N+1计算,如此类推,就像一个先入先出的队列
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sosoben
2012-09-25
打赏
举报
回复
最后一顶 没有更好的设想就结了 抓紧机会哦
sosoben
2012-09-24
打赏
举报
回复
是啊,我在收集多方意见啊,其实我自己也有想法的啊,我现在二值化是左右X个像素与中间像素差异较大的时候才变为白色,可以简单地把背景的光斑去掉
Trent1985
2012-09-24
打赏
举报
回复
[Quote=引用 18 楼 的回复:]
引用 17 楼 的回复:
引用 16 楼 的回复:
引用 15 楼 的回复:
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点……
[/Quote]
如果你想通过CSDN提问的方式就搞出来一个很实用很N的算法来,这个未免对工作有点太不负责任,对CSDN有点期望过高了,一个复杂的算法,不是一言一行就可以搞出来的,你要多看技术论文,结合实践才行!
Trent1985
2012-09-24
打赏
举报
回复
[Quote=引用 18 楼 的回复:]
引用 17 楼 的回复:
引用 16 楼 的回复:
引用 15 楼 的回复:
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点……
[/Quote]对于视频监控之类而言,背景维护是一个相当重要的难题,你可以在谷歌学术上搜一下,肯定是一大堆!
Trent1985
2012-09-24
打赏
举报
回复
[Quote=引用 18 楼 的回复:]
引用 17 楼 的回复:
引用 16 楼 的回复:
引用 15 楼 的回复:
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点……
[/Quote]高斯分布在你这里应该是对监控区域背景进行建模用的吧,相关性系数一般是用来计算图像相似程度的!
sosoben
2012-09-24
打赏
举报
回复
[Quote=引用 17 楼 的回复:]
引用 16 楼 的回复:
引用 15 楼 的回复:
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点的位置,就是你要找的圆心位置;
……
[/Quote]
主要是我现在接触到的日本人的代码实在太复杂了(什么高斯分布啊,Cramer法则啊,相关系数啊),如果我想得太简单,那显得太弱了
对于实际应用也不够通用性,对于每个图像要重新设计算法…………
Trent1985
2012-09-24
打赏
举报
回复
[Quote=引用 16 楼 的回复:]
引用 15 楼 的回复:
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点的位置,就是你要找的圆心位置;
5,如果你有几个点的误差,那么求和……
[/Quote]呵呵,楼主这么爱学,顶一个!
sosoben
2012-09-24
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点的位置,就是你要找的圆心位置;
5,如果你有几个点的误差,那么求和之后完全不影响结果,而黄色区域的……
[/Quote]
1、如果干扰点偏离得比较远,那画的红色矩形会比较大,黄色矩形也必然画错了啊
2、根据微积分,圆内任一点到圆周各点距离之和都相等,等于圆的面积吧。
但是,这的确可以排除偏离于圆外的干扰点
我现在是打算用三点求圆心的数学方法来求圆心,每三点求一次圆心后,用你的方法排除干扰点
如果没有更新的回答,那就要结贴了~~~
sosoben
2012-09-24
打赏
举报
回复
[Quote=引用 19 楼 的回复:]
引用 18 楼 的回复:
高斯分布在你这里应该是对监控区域背景进行建模用的吧,相关性系数一般是用来计算图像相似程度的!
[/Quote]
其实也是为了找光点用的,因为通过聚焦得到的图像的线条从清晰到不清晰基本上合乎高斯分布,即正态分布 相关我就不清楚,从那里开始看不明白了
sosoben
2012-09-22
打赏
举报
回复
突然想到, n个点求平均之后,还是不能把偏离得比较大的点给找出来啊,求算法!!
Trent1985
2012-09-22
打赏
举报
回复
上面是算法图像说明:
1,根据你得到的圆周上的点,先找出他们的最小外接矩形,如红色矩形所示;
2,根据红色矩形,可以得出圆心所在的范围,可以设定一个阈值,这个范围,如黄色矩形所示;
3,遍历黄色区域的每一个像素,计算该像素位置与每个圆周点位置的距离之和Sum;
4,当Sum最小时的那个像素点的位置,就是你要找的圆心位置;
5,如果你有几个点的误差,那么求和之后完全不影响结果,而黄色区域的选择则是为了减少计算量!!
Trent1985
2012-09-22
打赏
举报
回复
这个太简单了 !!!
sosoben
2012-09-21
打赏
举报
回复
难点那里可以加分啊!! 设各点坐标x1,y1 ………… xn,yn
求近似圆的圆心。有点像最小二乘法求一条直线与各点相关,但现在是求一个圆啊
sosoben
2012-09-21
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
偏移太大的点 就是与其他正常的点组成的圆的距离相差太大 设阈值为 R吧 大于R就不行
我是要先把N个点的大致圆心求出来? (这是重点,也是我最想问的)
然后比较有没有点离这圆心的距离大于R?有就移除 得到N-1个点再计算
循环上面的步骤
得出最后圆心?
这样的思路正确吗??
[/Quote]
我是要先把N个点的大致圆心求出来? (这是重点,也是我最想问的)
怎么求啊??
美丽的鸡翅膀
2012-09-21
打赏
举报
回复
你去看了就知道,List功能强大但是占用内存多谢,而IList功能稍弱,程序要求不高的话用List<>就好
sosoben
2012-09-21
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:
IList<Point> listpoint = new IList<Point>();
怎么我这句就有错误呢?
无法创建抽象类或接口“System.Collections.Generic.IList<System.Drawing.……
应该为IList<Point> listpoint = new List<Point>();
百度一下IList<>和……
[/Quote]
那对于我这个程序, 用
IList<Point> listpoint = new List<Point>(); 还是
List<Point > listpoints = new List <Point >();
更有效率呢? 我知道最终结果都一样Ilist只是个接口,实际都是list
美丽的鸡翅膀
2012-09-21
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
IList<Point> listpoint = new IList<Point>();
怎么我这句就有错误呢?
无法创建抽象类或接口“System.Collections.Generic.IList<System.Drawing.……
[/Quote]
应该为IList<Point> listpoint = new List<Point>();
百度一下IList<>和List的区别,你就明白了
http://wenku.baidu.com/view/523d73355a8102d276a22f64.html
sosoben
2012-09-21
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
什么叫偏大的点,拟制定好一个标准,自己删除就是了
数据放到列表中,如果到了N个,那么来一个就RemoveAt(0)
[/Quote]
IList<Point> listpoint = new IList<Point>();
怎么我这句就有错误呢?
无法创建抽象类或接口“System.Collections.Generic.IList<System.Drawing.Point>”的实例
sosoben
2012-09-21
打赏
举报
回复
偏移太大的点 就是与其他正常的点组成的圆的距离相差太大 设阈值为 R吧 大于R就不行
我是要先把N个点的大致圆心求出来? (这是重点,也是我最想问的)
然后比较有没有点离这圆心的距离大于R?有就移除 得到N-1个点再计算
循环上面的步骤
得出最后圆心?
这样的思路正确吗??
bdmh
2012-09-21
打赏
举报
回复
什么叫偏大的点,拟制定好一个标准,自己删除就是了
数据放到列表中,如果到了N个,那么来一个就RemoveAt(0)
加载更多回复(2)
nginx入门到精通
1.反向代理:对多个服务器进行反向代理服务。2.负载均衡:按照调度规则
实现
动态
、静态页面分离,可以按照轮询、ip哈希、权重等多种方式
实现
将请求平均分配到后端服务器上。3.动静分离:让静态资源(image,html,js,css)跟
动态
资源分布在不同的服务器上4.session共享:分布式系统中的session共享
问题
QGraphicsView
描画
同心
圆
进行点分类
问题
使用QPainter函数addEllipse()和QGraphicsEllipseItem
描画
同心
圆
由于Qt内部的采样点较少,进行放大时可以看到
圆
的弧度较小。可以看到 红色
圆
将2个蓝色点(实际时同心
圆
外的点)圈进来了。但是蓝色
圆
将蓝色点正确圈在了
圆
外。(注:蓝色点是
圆
外点,红色点时
圆
内点)通过计算
圆
的离散点使用QGraphicsPolygonItem进行
描画
(离散点越多越精准)。分类正确,但是点位显示不正确,应该在
圆
环外,但是点显示在
圆
内。
描画
同心
圆
对画布上的点进行同心
圆
分类。
MFC DLL
动态
库添加资源显示窗体,并利用双缓冲
描画
技术
描画
在网上查了很多资料关于封装DLL中添加资源显示窗体的具体操作过程,有些可以借鉴。我在这里做一个简单的例子,供大家分享。 在创建的窗体中进行图像的
描画
,关于双缓冲
描画
图像的
问题
,在此总结一下我在处理过程中遇到的一些
问题
,供大家参考。 1 添加资源创建窗体的
动态
库封装 我使用的是VS2013,和普通的DLL
动态
库封装相同,首先创建MFC DLL工程(工程名:MFCDLL),在生成的工程文件
C#下
实现
双缓冲
描画
高频曲线(GDI+结合GDI)
由于项目需要,要使用c#
描画
高频实时曲线.但是在C#下由于
描画
图像使用的是GDI+,
描画
效率很有
问题
.一旦曲线太多,就会造成CPU使用率直线上升,马上飙升到100%.在GDI+下使用双缓冲也无济于事,双缓冲本身只会解决曲线多的时候全屏闪烁
问题
,但
描画
效率还是严重低下.其间用过多种解决方案:DRECT3D,DRIRECT2D,GDI,,,,,等等等等最后从效率出发,最终解决方案如下:
vue-element-admin开发后台权限模块
本课程是基于vue-element-admin
实现
的后台权限验证系统,解决在前后端分离场景下如何
实现
前端菜单访问的
动态
权限以及如何在脚手架中进行接口的封装调用,您将学习到如下知识: 1、学习如何使用后台集成框架vue-element-admin进行后台前端框架的搭建;2、学习如何在vue-element-admin中使用element-ui组件,学习到后台通用列表页面的制作方式;3、学习如何在前后端分离下,
实现
前端菜单的
动态
权限,如何进行请求的统一拦截;4、学习基于JWT的登陆认证流程;5、学习到前端项目的前后端联调,如何在服务器层解决前后端分离引起的跨域
问题
;6、学习如何在响应拦截器里自定义各类错误提示
C#
109,900
社区成员
642,646
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章