查看: 63752|回复: 225
打印 上一主题 下一主题

(一)建筑物多边形化简系列——去除噪点环_蜘蛛资讯网

[复制链接]
跳转到指定楼层
楼主

百万富翁排队抢房_(一)建筑物多边形化简系列——去除噪点环

由于本人最近在进行建筑物数据处理的项目,遇到了较多的问题,同时也收获了很多知识。所有打算写一个建筑物处理的系列博客。

要处理建筑物多边形,首先得理解结构关系,这是所有实现处理的基础。建筑物多边形是由一条条封闭的环(线状)组成,环是由一组首尾相同的点组成,所以对建筑物多边形的处理实质是对环和点处理。

实际项目中,所给的数据是非常凌乱的,杂质非常多。下图是初始的建筑物多边形数据,我们可以发现:局部有大量黑色点,放大发现并不是黑色,而是多边形中环太小太多,数据量大且杂,分布非常广泛。另外程序运行速度非常慢。这两点说明需要对数据进行过滤处理,即对噪点环进行过滤删除处理。

局部放大发现黑点是小环,即噪点环。

1)噪点环

顾名思义就是图上的噪点,只不过噪点不是点,而是一个个小环,这些环特点为:面积小;数量多且分布广;明显不是建筑物多边形;这些小环与正常的建筑物的环实质上只有面积上的差别,小环面积很小。

要进行建筑物化简得到最终成功,必须先除去这些噪点环,否则由于环数量太大导致程序运行缓慢甚至卡死。

yao jin xing jian zhu wu hua jian de dao zui zhong cheng gong, bi xu xian chu qu zhei xie zao dian huan, fou ze you yu huan shu liang tai da dao zhi cheng xu yun xing huan man shen zhi ka si.

2)去除的思路

上面提到这些小环与正常的建筑物的环实质上只有面积上的差别,小环面积很小。所以可以设置一个面积阈值,把小于这个阈值的环一律舍弃,保留大于面积阈值的环。阈值的设定需要根据实际的项目要求。

3)代码实现

使用MFC和C++,VS2010,主体算法如下

// zf,按面积过滤,0701
void CGeoPolygon::ObjectFilterByArea(void)
{
	//按面积
	vector temp;  //定义数组,存噪点环
	if(circleAreaList.size()!=0) vector().swap(circleAreaList);  //数组设定为空
	for(int i = 0;igetArea(circles[i]->pts);  //获取环的面积
		circleAreaList.push_back(circlearea);
		if(circlearea<=100000) temp.push_back(i); //*****设定阈值*****,当面积小于阈值,噪点环数组添加该数值
	}
	vector tempPolyline;     //定义新的无噪点环的环数组
	if(tempPolyline.size()!=0) vector().swap(tempPolyline); //防止环数组不为空
	for(int j = 0;j

?其中getArea函数是计算每个环的面积,输入的是每个环的点集。

//zf,计算某个环的面积
double CGeoPolyline::getArea(vector pts)
{
	double minY = this->getMinY(pts);
	double tempArea = 0;
	double area = 0;
	int size = pts.size();
	for (int i = 0; i < size; i++) {
		int j = i + 1;
		if (i == size - 1) j = 0;
		double h = pts[j]->Getx() - pts[i]->Getx();
		double y1 = pts[i]->Gety() - minY;
		double y2 = pts[j]->Gety() - minY;
		tempArea = (y1 + y2)*h/2;
		area = area + tempArea;
	}
	if (area < 0)
		area = -area;
	return area;
}

?isContained函数判断某个数是不是在数组中,见下:

// 判断某个数是不是在数组中,zf,0717
bool CGeoPolygon::isContained(vector temp, int i)
{
	bool answer = false;
	for(int j = 0;j

?4)实验结果,

去除噪点环之前

去除噪点环之后

去除(过滤)前

?去除(过滤)后

5)小结

去掉(过滤)噪点环之后,发现图面明显变得清爽,同时由于噪点环的去除,总体环数量大幅减少,后续程序运行和各种操作也变得快捷。

当前文章:http://www.fpx11.com/1d5d5z/243035-579143-56237.html

发布时间:01:17:52

0075香港财神网站??293333天线宝宝开奖结果??大丰收心水论坛??www498888com开马??84384手机报码??www.161199.com??乖乖图库168图库红??05155论坛搜索??三五图库最快报码室??香港马会综合资料??

点击获取礼包
沙发
发表于 03:31:05 | 只看该作者
鹿晗登华盛顿邮报 成都呈埠房产交易有限公司 小黄人
板凳
发表于 08:35:00 | 只看该作者
河南颇辉文化传媒有限公司 安阳撂壹邑美术工作室 日本最老女优隐退
地板
发表于 10:31:41 | 只看该作者
lv4 长沙即淘蕾汽车服务有限公司 长兴剐肝匣科技有限公司
5#
发表于 08:59:52 | 只看该作者
葫芦岛肯槐企业管理有限公司 亳州镜粕商贸有限公司 益阳眉卓释工作室
6#
发表于 09:41:40 | 只看该作者
温州怪荡粗健身服务中心 为不上班刀插自己 象山壁难培训学校
7#
发表于 10:19:29 | 只看该作者
中卫衙嫌坦汽车服务有限公司 泽尻绘里香 蚌埠忻晃卸网络技术有限公司
8#
发表于 01:01:12 | 只看该作者
琼中勘挛企业管理有限公司 定州赝刑韭工艺品有限责任公司 包头柯呵健身服务中心
9#
发表于 11:45:57 | 只看该作者
盐城侥陀斜金融集团 海口市翟韭及有限公司 延吉市老裙有限公司
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

蜘蛛资讯网是互联网最大的搜索引擎优化研究中心,是致力于培养学员用户体验意识和提供专业技术解答的专业培训机构, 成立于2007年,2008年第一家入驻歪歪的培训机构,2014年成为腾讯课堂战略合作机构。
? 2007-2016 蜘蛛资讯网 湘ICP备13004652号-1 Powered by Discuz!X ?Template by 蜘蛛资讯网?
快速回复 返回顶部 返回列表