[发明专利]一种三维地形生成方法有效
申请号: | 202111109019.6 | 申请日: | 2021-09-22 |
公开(公告)号: | CN113838199B | 公开(公告)日: | 2023-07-11 |
发明(设计)人: | 熊风光;张鑫;刘欢乐;尹宇慧;况立群;韩燮 | 申请(专利权)人: | 中北大学 |
主分类号: | G06T17/05 | 分类号: | G06T17/05;G06T7/90;G06T7/66;G06T7/13;G06V10/44;G06V10/26;G06V10/74;G06V20/10 |
代理公司: | 太原申立德知识产权代理事务所(特殊普通合伙) 14115 | 代理人: | 程园园 |
地址: | 030051*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 地形 生成 方法 | ||
1.一种三维地形生成方法,其特征在于,包括以下步骤:
步骤1,利用图像处理软件,将语义分割得到的水系、植被、建筑物、道路mask图片背景填充为黑色;
步骤2,提取每个建筑物的轮廓;
步骤3,求每个轮廓的质心坐标;
步骤4,通过cv2中rect函数获取步骤2中得到的每个轮廓的最小外接矩形,rect_width、rect_height、rect_angle、rect_x、rect_y获取到外接矩形的宽高、旋转角度、位置坐标,取整,其中角度取绝对值;对于每个轮廓,轮廓上的每个像素点逆时针旋转rect_angle的绝对值角度,将倾斜的轮廓“摆正”;
步骤5,每次处理完一个步骤4中得到的轮廓后,创建一个和原图同比例大小的白色背景图,在此图上将旋转后的轮廓绘制出来,轮廓里填充成黑色;根据不同类别大小进行裁剪并将其分类保存;
步骤6,读取步骤5中图片,将图片与模型库中的建筑物垂直投影利用均值hash算法进行hash匹配,得到最匹配的模型,并生成对应的json文件以便后续地形生成;
步骤7,根据分割得到的水系分布图,设置地形下陷,生成水体地形凹陷;
步骤8,利用高度图和Terrain生成与步骤7地形一样的mesh,给mesh一个水的材质;
步骤9,根据地形的数据给创建地形后所有地形贴图,使得贴图后的地形真实美观;
步骤10,遍历草地分布图,生成草地与植被;
步骤11,根据坐标和角度实例化建筑,在模型库中把对应的建筑放置到对应的位置上生成最终的模拟真实的三维地形。
2.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤2中提取每个建筑物的轮廓是利用经典的Canny边缘检测算子,具体方法是:使用OpenCV读取指定图片,将图片转换成灰度图,使用高斯模糊消除图片中出现的噪点,然后把图片二值化,使用findContours函数提取检测到的所有轮廓,以及每个轮廓的坐标点。
3.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤3获取轮廓质心坐标的具体方法是:先读取到每个轮廓的矩阵放到变量M中,根据公式得到所有建筑物的质心坐标,将其存放到centers二维数组中。
4.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤6中将图片与模型库中的建筑物垂直投影利用均值hash算法进行hash匹配具体包括以下步骤:
(1)缩放图片:将输入的图片缩放到指定比例大小;
(2)转灰度图:统一将输入图片的色彩转换为单通道的灰度图;
(3)计算像素平均值:计算经过图片缩放,灰度图转换后得到矩阵A中所有元素的平均值a;
(4)hash值计算:对输入的图片的hash值进行初始化,再从左到右一行一行地遍历矩阵A的每一个像素,如果第i行j列元素A(i,j)值大于或者等于a,则hash值加1,如果第i行j列元素A(i,j)小于a,则hash值不变;
(5)获得输入图片的哈希值之后,循环比较两个图片的hash值来计算两个图片相似度,若某一位不同,则汉明距离+1,用最终的汉明距离作为相似度的参考值,设定一个阈值,在一定的范围内,若两张图片的汉明距离小于阈值,则可以认为这两张图片为相似图片。
5.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤7中生成水体地形凹陷的具体方法是:根据高度图的颜色确定地形的高度,遍历高度图的像素颜色把高度信息设置到Terrain的地形中;再预先用高斯模糊处理水系分布图,遍历水系分布图,用水系的颜色乘上、下陷数值,把地形原来高度减去下限的数值;重新把高度设置到Terrain上,达到水系位置地形下降的效果。
6.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤8中水的材质的shader中利用水域分布图作为模版,黑色不显示而非黑色显示为水。
7.根据权利要求1所述的一种三维地形生成方法,其特征在于,所述步骤9中给所有地形贴图功能具体过程为:首先判断是哪种地形,根据不同地形给数据赋值,遍历所有数据后,将值赋给map数组,此数组提供要替换的部分的宽度和高度,与splatmap贴图数量相匹配,之后将Terrain对应位置的贴图替换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中北大学,未经中北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111109019.6/1.html,转载请声明来源钻瓜专利网。