CN104966320A - 一种基于三阶Bezier曲线的伪装迷彩自动生成方法 - Google Patents
一种基于三阶Bezier曲线的伪装迷彩自动生成方法 Download PDFInfo
- Publication number
- CN104966320A CN104966320A CN201510432519.1A CN201510432519A CN104966320A CN 104966320 A CN104966320 A CN 104966320A CN 201510432519 A CN201510432519 A CN 201510432519A CN 104966320 A CN104966320 A CN 104966320A
- Authority
- CN
- China
- Prior art keywords
- spot
- rectangle
- painting canvas
- limit
- curve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种基于三阶Bezier曲线的伪装迷彩自动生成方法,本方法具有按照给定模型尺寸、颜色比、斑点曲率半径,快速自动化生成迷彩斑点、并在AutoCAD中自动绘图等几个主要方面的功能。传统斑点图案生成主要是人工绘制,这种做法不仅生产效率低下,而且斑点形状以及颜色面积比等各个方面很难达到实际要求,没有发挥计算机给生产带来的方便。本迷彩图案自动生成系统的设计主要依托计算机技术,实现迷彩图案的自动绘制,不仅大大提高了设计效率,而且利用数字图像处理技术对人眼不能识别的色差、曲率半径等进行处理,并且各种颜色的面积比更加精确的符合迷彩图案设计要求,增强了伪装程度。
Description
技术领域
本发明涉计算机图形学,特别是用三阶Bezier曲线模拟迷彩斑点,并用计算机实现迷彩斑点的自动绘制。
背景技术
迷彩伪装技术是现代军事中重要的伪装技术,经过后期的实际发展,迷彩与科技融合后生成了变形迷彩和仿造迷彩。传统斑点图案生成主要是人工绘制(每幅迷彩图案少则几十个斑点,多则上千个斑点),这种做法不仅生产效率低下,而且斑点形状以及颜色面积比等各个方面很难达到实际要求,没有发挥计算机给生产带来的方便。本迷彩图案自动生成系统的设计主要依托计算机技术,实现迷彩图案的自动绘制,不仅大大提高了设计效率,而且利用数字图像处理技术对人眼不能识别的色差、曲率半径等进行处理,并且各种颜色的面积比更加精确的符合迷彩图案设计要求,增强了伪装程度。迷彩的伪装技术建立在排列无规则、大小不一、曲率半径适当的斑点之上,斑点颜色符合国军标或者特殊标准。斑点大小需要满足画布比例要求,同时各个斑点衔接处要尽量自由圆滑、符合曲率半径要求,整幅图案颜色要符合给定的颜色比例。
由于战地场景的多变性,迷彩的设计随机性要求就比较高。为了能够完成达到要求的斑点图案,工作人员需要手动去绘制完全无规则的曲线斑点、调节斑点曲率、设置斑点颜色。往往一幅斑点图案需要随机上百个斑点,这给工作人员带来了很大的任务量。绘制好的图形要不断调整,满足最佳状态,还需要借助计算机三维模型展示,并在AutoCAD图纸中绘图,这是一个非常复杂的过程,因此本迷彩图案自动生成系统非常具有实际意义。
发明内容
迷彩图案自动化生成系统的开发旨在提供高效、便捷的迷彩设计方式。本设计的核心是自动化生产,最终成果必须具备快速自动设计符合要求斑点图案的功能。因此,本方法具有按照给定模型尺寸、颜色比、斑点曲率半径,快速自动化生成符合上述要求的迷彩斑点、并在AutoCAD中自动绘图等几个主要方面的功能。
本发明的特征在于含有以下步骤:
步骤(1),斑点曲线建模:用三阶Bezier曲线作为迷彩斑点曲线,用闭合的三阶Bezier曲线模拟迷彩斑点。三阶Bezier曲线定义如下:
定义给定空间n+1个点的位置矢量pi(i=0,1,2,......,n),则迷彩斑点参数曲线上各点坐标的插值公式是:
其中,Pi构成该迷彩斑点曲线的特征多边形,Bi,n(t)是n次Bernstein基函数:
其中:
n为基本曲线的次数。
c为组合数公式。
t表示曲线上点的位置,t的取值为[0,1],0代表曲线的开始点位置,1代表曲线的末端点位置。
i的取值是从0到n
其中规定:00=1,0!=1
迷彩斑点的曲线性质:
1)正性
2)端点性
3)满足递推性:
Bi,n(t)=(1-t)Bi,n-1(t)+tBi-1,n-1(t),(i=0,1,...,n)
4)导函数
Bi,n(t)=n[B′i-1,n-1(t)-B′i,n-1(t)],(i=0,1,...,n)
一阶导矢为:
二阶导矢为:
5)迷彩斑点曲线在t=t0处的坐标计算式为:
p(t0)=(1-t0)3p0+3t0(1-t0)2p1+3t0 2(1-t0)p2
步骤(2),手动绘制单个迷彩斑点:用户在软件绘图界面左键点击屏幕来确立一系列关键点,记录用户点击过的关键点坐标(并将用户点击过的关键点在屏幕上标识出来)。当用户点击的某个点和点击的第一个点重合的时候(用户所点击的点的总个数大于二个),将用户点击过的点,按照先后顺序,用三阶Bezier曲线的曲线拼接技术,把用户点击过的这一系列点连接起来(同时保留三阶Bezier曲线各点处的坐标,方便计算曲线各点处的曲率半径),以此绘制出一个迷彩斑点。
步骤(3),检测单个斑点各处的曲率半径,并绘制出符合曲率半径要求的斑点:
依据三阶Bezier曲线在各点处的曲率半径计算公式,结合步骤(1)中生成的三阶Bezier曲线各点处的坐标,计算出三阶Bezier曲线各点处的曲率半径值,然后结合所要求的曲率半径的值,来检测并标记出不符合曲率要求的曲线,再通过人手动的方式,对点击过的关键点的手动调节,将不符合曲率半径要求的点调节为符合曲率半径要求的点,即:绘制的曲线各点的曲率半径必须比大于等于所给出的曲率半径的值。最终绘制出一个符合曲率半径要求的迷彩斑点。
步骤(4),建立符合曲率半径要求的迷彩斑点库:
保存步骤(3)中符合要求的迷彩斑点的坐标到文件(例如一种实现方式:每一个迷彩斑点保存为一个.spot文件,并以数字命名所保存的文件,1.spot,2.spot……),并以单个斑点所含关键的个数为划分依据,分别建立含有多个关键点的大型斑点库和包含较多斑点的中型斑点库以及包含较少斑点的小型斑点库。
步骤(5),将车辆的模型简化为一个长方体,建立了与车辆模型相匹配的五面画布,该画布为平面结构,其包括矩形A、矩形B、矩形C、矩形D、矩形E,其中矩形E为该五视图画布的中心面,矩形E的四条边分别为边a、边b、边c、边d;所述矩形A、矩形B、矩形C、矩形D以矩形E为中心,矩形A与矩形E公共边为边a,矩形B与矩形E公共边为边b,矩形C与矩形E公共边为边c,矩形D与矩形E公共边为边d。该五视图画布的矩形A、矩形B、矩形C、矩形D分别以边a、边b、边c、边d为中心,沿平面内竖直方向90°旋转,矩形A、矩形B、矩形C、矩形D、矩形E即组成无盖的六面体结构,该六面体结构与待绘制的车辆模型相对应,其中矩形E为待绘制的车辆模型的顶面,矩形A、矩形B、矩形C、矩形D为待绘制的车辆模型四个侧面,如图2。
步骤(6),随机生成一幅包含多个迷彩斑点(各个迷彩斑点之间没有交集)的迷彩图案:
步骤(6.1)首先建立一个序列list,用来保存斑点,初始时存储序列为空,每次在画布上添加一个斑点,就把所添加的斑点加入到存储序列中。
步骤(6.2)将画布纹理映射到车辆时,画布上的矩形A、矩形B、矩形C、矩形D会分别覆盖到车辆的四个侧面,此时矩形A与矩形B、矩形B与矩形C、矩形C与矩形D、矩形D与矩形A会产生四条公共边,记为:ab、bc、cd、da。ab由画布上的矩形A的边a1与画布上的矩形B的边b1合并而来,bc由画布上的矩形B的边b2与画布上的矩形C的边c1合并而来,cd由画布上的矩形C的边c2与画布上的矩形D的边d1合并而来,da由画布上的矩形D的边d2与画布上的矩形A的边a2合并而来。ab、bc、cd、da与车辆竖直方向的四条侧棱相对应。为实现车辆上跨越这四条侧棱的斑点为同一个斑点,需要对五视图画布上的斑点做如下所示处理(图3):
步骤(6.2.1)将矩形A、矩形B、矩形C、矩形D的八条边:a1、a2、b1、b2、c1、c2、d1、d2划为四组,a1、b1划为第一组,b2、c1划为第二组,c2、d1划为第三组,d2、a1划为第四组。记边a1、b1的交点坐标为(xCenter,yCenter)。
步骤(6.2.2)从小型斑点库随机一个斑点spot,并让其跨越边a1,记斑点spot中心坐标为(x,y),并将其加入到序列list中。
步骤(6.2.3)将斑点spot的中心坐标(x,y)以a1、b1的交点坐标(xCenter,yCenter)为旋转中心顺时针旋转90度,此时斑点跨越边b1。
步骤(6.2.4)将旋转90度过后的斑点spot加入到序列list中。
步骤(6.2.6)其余三组边做同样处理。
步骤(6.3)在画布主干区域布大斑点。按照一定的间隔,从主干区域起始位置到主干区域终点位置,遍历主干区域。然后从大型斑点库取一个斑点,用当前位置坐标作为大型斑点的中心位置。根据当前大型斑点的缩放比例,旋转角度,计算出大型斑点的每个关键点在画布上的实际位置。
遍历存储序列中的斑点,根据当前大型斑点的位置、缩放比例与存储序列中斑点的位置、缩放比例,求得当前大型斑点相对于存储序列中斑点的中心相对坐标,计算公式如下:
1、x_big是大斑点的中心x坐标,y_big是大斑点的中心y坐标,
2、i是当前遍历到的小斑点序号,
3、x_small[i],是当前小斑点的x中心坐标,y_small[i]是当前小斑点的y中心坐标,
4、rotation[i]当前小斑点的旋转角度,stretch[t]当前小斑点的缩放比例
5、x_get,y_get是大小斑点的中心相对坐标
6、PI是圆周率π
则:中心相对坐标x_get,y_get为:
x_get=(x_big-x_small[i])*cos(-rotation[i]/180*PI)/stretch[i]
-(y_big-y_small[i])*sin(-rotation[i]/180*PI)/stretch[i];
y=(x_big-x_small[i])*sin(-rotation[i]/180*PI)/stretch[i]
+(y_big-y_small[i])*cos(-rotation[i]/180*PI)/stretch[i];
对大型斑点的每个关键点进行遍历,根据当前大型斑点对存储序列中斑点的相对坐标,检测有没有关键点包含在存储序列的斑点中,如果对当前斑点的所有关键点,每个关键点都没有包含在存储序列的斑点中,则表明当前大型斑点没有覆盖画布上的任何一个斑点,将该大型斑点加入到存储序列中。
(6.4)按照大型斑点的随机方式,分别随机中型斑点和小型斑点。
(6.5)本策略执行时间:长10米,宽3米,高3米的车所对应的五视图画布,生成时间大约为30-60秒。
步骤(7),计算每个迷彩斑点以及未被迷彩斑点覆盖的画布所占整个画布的面积比:
将整个画布划分为大小均匀的小正方形,并计算出每一个小正方形所占整个画布的比例(假设为s)。对所有小正方形进行遍历,对当前遍历到的小矩形块与迷彩图案上的所有斑点进行碰撞检测,如果小正方形块与某个斑点有交集,则该斑点所占整个斑点的面积比增加s,继续遍历下一个小正方形块,直到所有正方形块遍历完全。用1减去每个斑点所占的面积比,则为未被斑点覆盖的画布所占整个画布的面积比。
步骤(8),按照给定三种颜色比例,对斑点画布进行涂色:
给定的颜色比例分别为:6:4、3:3:2、2:2:2:3。以颜色比2:2:3:3来讲解按照给颜色积比对斑点画布进行涂色的思想:
如果颜色比要求为3:3:2:2,则四种颜色在画布上所占的百分比对应为0.3,0.3,0.2,0.2。定义画布上一共有n个斑点,每个斑点面积比设为spot(t),t取值为从1~n。假设未被斑点覆盖的画布面积比为canS,则假设这四种颜色分别为A、B、C、D,四种颜色当前在画布上的面积比为S(A),S(B),S(C),S(D),涂色之前S(A)=0,S(B)=0,S(C)=0,S(D)=0。
步骤(8.1),首先将所有迷彩斑点的面积比由大到小排序。
步骤(8.2),将未被斑点覆盖的画布面积比加到A颜色当前面积比中,即:S(A)=S(A)+canS,判断S(A)是否大于等于0.3,如果大于等于,则执行8.3,如果小于则执行8.4。
步骤(8.3),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为0。
步骤(8.3.1)如果S(B)<0.3,则执行:S(B)=S(B)+spot(i),i=i+1,否则跳转8.3.2。如果i<n+1,则继续执行8.3.2,否则结束。
步骤(8.3.2)如果S(C)<0.2,则执行:S(C)=S(C)+spot(i),i=i+1,否则跳转8.3.3。如果i<n+1,则继续执行8.3.3,否则结束。
步骤(8.3.3)如果S(D)<0.2,则执行:S(D)S(D)+spot(i),i=i+1,否则跳转8.3.1。如果i<n+1,则跳转到8.3.1,并继续执行,否则结束。
步骤(8.4),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为0。
步骤(8.4.1)如果S(A)<0.3,则执行:S(A)=S(A)+spot(i),i=i+1,否则跳转8.4.2。如果i<n+1,则继续执行8.4.2,否则结束。
步骤(8.4.2)如果S(B)<0.3,则执行:S(B)=S(B)+spot(i),i=i+1,否则跳转8.4.3。如果i<n+1,则继续执行8.4.3,否则结束。
步骤(8.4.3)如果S(C)<0.2,则执行:S(C)=S(C)+spot(i),i=i+1,否则跳转8.4.4。如果i<n+1,则继续执行8.4.4,否则结束。
步骤(8.4.4)如果S(D)<0.2,则S执行:(D)+spot(i),i=i+1,否则跳转8.4.1。如果i<n+1,则跳转到继续执行8.4.1,否则结束。
步骤(9)将绘制的迷彩图案在AutoCAD中自动重绘:
步骤(9.1)将要软件中迷彩斑点的坐标转换为AutoCAD中坐标。步骤(9.2)用AutoCAD中SPL命令生成所有迷彩斑点在AutoCAD中的绘制命令。
步骤(9.3)最后在AutoCAD命令窗口中粘贴(9.2)中生成好的命令,将迷彩图案在AutoCAD中重绘出来,实现AutoCAD图纸的自动生成。
本发明是一种伪装迷彩自动生成的一种方式,给制作伪装迷彩的工作人员带来了极大的便利:
以往迷彩制作人员制作迷彩,基本是手工绘制,不仅绘制速度慢,而且斑点的曲率半径靠人眼鉴定很不准确,颜色的面积比没有办法控制在指定的比例之内,绘制出的迷彩斑点误差大。本伪装迷彩自动生成的方式不仅把原来二十多天的工期缩短到一周之内,而且迷彩图案的自动生成过程经过严格的科学计算,能很好的达到迷彩图案的设计要求,能快速有效的生成迷彩图案,再把迷彩图案在三维模型上的展示,最后把迷彩图案生成为AutoCAD图纸,具有较强的实用性,给迷彩图案制作人员带来相当大的便捷。
附图说明
图1本发明中迷彩图案自动生成流程的简略图。
图2与车辆模型相匹配的五面画布。
图3对跨越车辆竖直方向四条侧棱的斑点,在画布上所做的处理。
图4迷彩斑点曲线实例。
具体实施方式
以下对本发明所涉及的其它技术作进一步说明:
1)规定画布上的像素点与模型实际尺寸之间的比例尺定义画布上的100个像素点与实际100cm相对应,这样就能保证按照给定的尺寸绘制出的迷彩图案,能够和实际模型相吻合。
2)迷彩斑点曲线的拼接(三阶Bezier曲线的拼接)
先算出相邻原始点(用户左键点击点的点)的中点,再把相邻中点连成的线段平移到对应的原始点,以平移后的中点作为控制点,相邻原始点为起始点画贝塞尔曲线,保证了三阶Bezier曲线连接处的光滑。而贝塞尔曲线本身光滑,所以就把这些原始点用光滑曲线连起来了。通过此种方式,用三阶Bezier曲线连接用户左键所点击的关键点,来模拟迷彩图案曲线并绘制迷彩图案。实现效果如图4
3)将2)中得到的三阶Bezier曲线首尾拼接,便得到光滑闭合的三阶Bezier曲线,用此闭合曲线来模拟迷彩斑点。
4)迷彩斑点曲线曲率半径的检测
对于一个以参数形式给出的平面曲线c(t)=(x(t),y(t))其曲率为:
曲线曲率半径r=1/k。
由(3)知,要求的曲线曲率半径,需求得曲线的一阶导矢和二阶导矢。然后将n=3代入迷彩曲线的一阶导矢和二阶导矢得:
得:
p′(t)=3(p1-p0)(1-t)2+6(p2-p1)t(1-t)+3(p3-p2)t2
p″(t)=6(p3-2p2+p1)t+6(p2-2p1+p0)(1-t)
故:
x′(t)=3(p1(x)-p0(x))(1-t)2+6(p2(x)-p1(x))t(1-t)+3(p3(x)-p2(x))t2
y′(t)=3(p1(y)-p0(y))(1-t)2+6(p2(y)-p1(y))t(1-t)+3(p3(y)-p2(y))t2
x″(t)=6(p3(x)-2p2(x)+p1(x))t+6(p2(x)-2p1(x)+p0(x))(1-t)
y″(t)=6(p3(y)-2p2(y)+p1(y))t+6(p2(y)-2p1(y)+p0(y))(1-t)
将x′(t),x″(t),y′(t),y″(t)代入(3)式即可得到迷彩曲线曲率。在系统中依据每个迷彩斑点上每个位置的坐标,代入上述迷彩曲线曲率计算公式。根据给定的迷彩斑点曲率半径的阀值,判断绘制的迷彩斑点是否符合要求。如果不符合要求,在系统中通过特殊颜色标记出来,通过改变迷彩斑点关键点的坐标,来使迷彩斑点的每个点的曲率符合要求。
5)纹理映射到三维模型上进行效果展示
利用OpenGL的纹理映射,将绘制好的迷彩图案映射到三维模型上,通过观察展示效果不断调节迷彩图案,直到得到满意的迷彩图案。
6)在AutoCAD实现迷彩图案的自动绘制
(1)保存在迷彩自动生成过程中迷彩斑点的关键点坐标。
(2)把迷彩图案斑点坐标转换为AutoCAD中的坐标。
(3)用AutoCAD中的SPL命令生成迷彩图案的绘制命令。例如,一个迷彩斑点所有关键点坐标为
(-7.25000,583.36363),(12.50000,571.86363)
(34.50000,584.11363),(32.00000,606.36363)
(17.50000,615.11363),(10.25000,626.61363)
(3.50000,642.36363),(-15.25000,648.11363)
(-29.50000,631.61363),(-31.00000,613.36363)
(-15.75000,596.61363)
则在AutoCAD中的绘制命令为:
SPL
-7.25000,583.36363
12.50000,571.86363
34.50000,584.11363
32.00000,606.36363
17.50000,615.11363
10.25000,626.61363
3.50000,642.36363
-15.25000,648.11363
-29.50000,631.61363
-31.00000,613.36363
-15.75000,596.61363
C
利用上述生成的AutoCAD命令,在AutoCAD命令窗口中输入,即可得到基于迷彩图案生成的AutoCAD图纸。
Claims (1)
1.一种基于三阶Bezier曲线的伪装迷彩自动生成方法,其特征在于:该方法含有以下步骤,
步骤(1),斑点曲线建模:用三阶Bezier曲线作为迷彩斑点曲线,用闭合的三阶Bezier曲线模拟迷彩斑点;三阶Bezier曲线定义如下:
定义给定空间n+1个点的位置矢量pi(i=0,1,2,......,n),则迷彩斑点参数曲线上各点坐标的插值公式是,
其中,Pi构成该迷彩斑点曲线的特征多边形,Bi,n(t)是n次Bernstein基函数:
其中:
n为基本曲线的次数;
c为组合数公式;
t表示曲线上点的位置,t的取值为[0,1],0代表曲线的开始点位置,1代表曲线的末端点位置;
i的取值是从0到n
其中规定:00=1,0!=1
迷彩斑点的曲线性质:
1)正性
2)端点性
3)满足递推性:
Bi,n(t)=(1-t)Bi,n-1(t)+tBi-1,n-1(t),(i=0,1,...,n)
4)导函数
Bi,n(t)=n[B′i-1,n-1(t)-B′i,n-1(t)],(i=0,1,...,n)
一阶导矢为:
二阶导矢为:
5)迷彩斑点曲线在t=t0处的坐标计算式为:
p(t0)=(1-t0)3p0+3t0(1-t0)2p1+3t0 2(1-t0)p2
步骤(2),手动绘制单个迷彩斑点:用户在软件绘图界面左键点击屏幕来确立一系列关键点,记录用户点击过的关键点坐标并将用户点击过的关键点在屏幕上标识出来;当用户点击的某个点和点击的第一个点重合的时候用户所点击的点的总个数大于二个,将用户点击过的点,按照先后顺序,用三阶Bezier曲线的曲线拼接技术,把用户点击过的这一系列点连接起来(同时保留三阶Bezier曲线各点处的坐标,方便计算曲线各点处的曲率半径),以此绘制出一个迷彩斑点;
步骤(3),检测单个斑点各处的曲率半径,并绘制出符合曲率半径要求的斑点:
依据三阶Bezier曲线在各点处的曲率半径计算公式,结合步骤(1)中生成的三阶Bezier曲线各点处的坐标,计算出三阶Bezier曲线各点处的曲率半径值,然后结合所要求的曲率半径的值,来检测并标记出不符合曲率要求的曲线,再通过人手动的方式,对点击过的关键点的手动调节,将不符合曲率半径要求的点调节为符合曲率半径要求的点,即:绘制的曲线各点的曲率半径必须比大于等于所给出的曲率半径的值;最终绘制出一个符合曲率半径要求的迷彩斑点;
步骤(4),建立符合曲率半径要求的迷彩斑点库:
保存步骤(3)中符合要求的迷彩斑点的坐标到文件(例如一种实现方式:每一个迷彩斑点保存为一个.spot文件,并以数字命名所保存的文件,1.spot,2.spot……),并以单个斑点所含关键的个数为划分依据,分别建立含有多个关键点的大型斑点库和包含较多斑点的中型斑点库以及包含较少斑点的小型斑点库;
步骤(5),将车辆的模型简化为一个长方体,建立了与车辆模型相匹配的五面画布,该画布为平面结构,其包括矩形A、矩形B、矩形C、矩形D、矩形E,其中矩形E为该五视图画布的中心面,矩形E的四条边分别为边a、边b、边c、边d;所述矩形A、矩形B、矩形C、矩形D以矩形E为中心,矩形A与矩形E公共边为边a,矩形B与矩形E公共边为边b,矩形C与矩形E公共边为边c,矩形D与矩形E公共边为边d;该五视图画布的矩形A、矩形B、矩形C、矩形D分别以边a、边b、边c、边d为中心,沿平面内竖直方向90°旋转,矩形A、矩形B、矩形C、矩形D、矩形E即组成无盖的六面体结构,该六面体结构与待绘制的车辆模型相对应,其中矩形E为待绘制的车辆模型的顶面,矩形A、矩形B、矩形C、矩形D为待绘制的车辆模型四个侧面;
步骤(6),随机生成一幅包含多个迷彩斑点(各个迷彩斑点之间没有交集)的迷彩图案:
步骤(6.1)首先建立一个序列list,用来保存斑点,初始时存储序列为空,每次在画布上添加一个斑点,就把所添加的斑点加入到存储序列中;
步骤(6.2)将画布纹理映射到车辆时,画布上的矩形A、矩形B、矩形C、矩形D会分别覆盖到车辆的四个侧面,此时矩形A与矩形B、矩形B与矩形C、矩形C与矩形D、矩形D与矩形A会产生四条公共边,记为:ab、bc、cd、da;ab由画布上的矩形A的边a1与画布上的矩形B的边b1合并而来,bc由画布上的矩形B的边b2与画布上的矩形C的边c1合并而来,cd由画布上的矩形C的边c2与画布上的矩形D的边d1合并而来,da由画布上的矩形D的边d2与画布上的矩形A的边a2合并而来;ab、bc、cd、da与车辆竖直方向的四条侧棱相对应;为实现车辆上跨越这四条侧棱的斑点为同一个斑点,需要对五视图画布上的斑点做如下所示处理:
步骤(6.2.1)将矩形A、矩形B、矩形C、矩形D的八条边:a1、a2、b1、b2、c1、c2、d1、d2划为四组,a1、b1划为第一组,b2、c1划为第二组,c2、d1划为第三组,d2、a1划为第四组;记边a1、b1的交点坐标为(xCenter,yCenter);
步骤(6.2.2)从小型斑点库随机一个斑点spot,并让其跨越边a1,记斑点spot中心坐标为(x,y),并将其加入到序列list中;
步骤(6.2.3)将斑点spot的中心坐标(x,y)以a1、b1的交点坐标(xCenter,yCenter)为旋转中心顺时针旋转90度,此时斑点跨越边b1;
步骤(6.2.4)将旋转90度过后的斑点spot加入到序列list中;
步骤(6.2.6)其余三组边做同样处理;
步骤(6.3)在画布主干区域布大斑点;按照一定的间隔,从主干区域起始位置到主干区域终点位置,遍历主干区域;然后从大型斑点库取一个斑点,用当前位置坐标作为大型斑点的中心位置;根据当前大型斑点的缩放比例,旋转角度,计算出大型斑点的每个关键点在画布上的实际位置;
遍历存储序列中的斑点,根据当前大型斑点的位置、缩放比例与存储序列中斑点的位置、缩放比例,求得当前大型斑点相对于存储序列中斑点的中心相对坐标,计算公式如下:
1、x_big是大斑点的中心x坐标,y_big是大斑点的中心y坐标,
2、i是当前遍历到的小斑点序号,
3、x_small[i],是当前小斑点的x中心坐标,y_small[i]是当前小斑点的y中心坐标,
4、rotation[i]当前小斑点的旋转角度,stretch[t]当前小斑点的缩放比例
5、x_get,y_get是大小斑点的中心相对坐标
6、PI是圆周率π
则:中心相对坐标x_get,y_get为:
x_get=(x_big-x_small[i])*cos(-rotation[i]/180*PI)/stretch[i]
-(y_big-y_small[i])*sin(-rotation[i]/180*PI)/stretch[i];
y=(x_big-x_small[i])*sin(-rotation[i]/180*PI)/stretch[i]
+(y_big-y_small[i])*cos(-rotation[i]/180*PI)/stretch[i];
对大型斑点的每个关键点进行遍历,根据当前大型斑点对存储序列中斑点的相对坐标,检测有没有关键点包含在存储序列的斑点中,如果对当前斑点的所有关键点,每个关键点都没有包含在存储序列的斑点中,则表明当前大型斑点没有覆盖画布上的任何一个斑点,将该大型斑点加入到存储序列中;
(6.4)按照大型斑点的随机方式,分别随机中型斑点和小型斑点;
(6.5)本策略执行时间:长10米,宽3米,高3米的车所对应的五视图画布,生成时间大约为30-60秒;
步骤(7),计算每个迷彩斑点以及未被迷彩斑点覆盖的画布所占整个画布的面积比:
将整个画布划分为大小均匀的小正方形,并计算出每一个小正方形所占整个画布的比例;对所有小正方形进行遍历,对当前遍历到的小矩形块与迷彩图案上的所有斑点进行碰撞检测,如果小正方形块与某个斑点有交集,则该斑点所占整个斑点的面积比增加s,继续遍历下一个小正方形块,直到所有正方形块遍历完全;用1减去每个斑点所占的面积比,则为未被斑点覆盖的画布所占整个画布的面积比;
步骤(8),按照给定三种颜色比例,对斑点画布进行涂色:
给定的颜色比例分别为:6:4、3:3:2、2:2:2:3;以颜色比2:2:3:3来讲解按照给颜色积比对斑点画布进行涂色的思想:
如果颜色比要求为3:3:2:2,则四种颜色在画布上所占的百分比对应为0.3,0.3,0.2,0.2;定义画布上一共有n个斑点,每个斑点面积比设为spot(t),t取值为从1~n;假设未被斑点覆盖的画布面积比为canS,则假设这四种颜色分别为A、B、C、D,四种颜色当前在画布上的面积比为S(A),S(B),S(C),S(D),涂色之前S(A)=0,S(B)=0,S(C)=0,S(D)=0;
步骤(8.1),首先将所有迷彩斑点的面积比由大到小排序;
步骤(8.2),将未被斑点覆盖的画布面积比加到A颜色当前面积比中,即:S(A)=S(A)+canS,判断S(A)是否大于等于0.3,如果大于等于,则执行8.3,如果小于则执行8.4;
步骤(8.3),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为0;
步骤(8.3.1)如果S(B)<0.3,则执行:S(B)=S(B)+spot(i),i=i+1,否则跳转8.3.2;如果i<n+1,则继续执行8.3.2,否则结束;
步骤(8.3.2)如果S(C)<0.2,则执行:S(C)=S(C)+spot(i),i=i+1,否则跳转8.3.3;如果i<n+1,则继续执行8.3.3,否则结束;
步骤(8.3.3)如果S(D)<0.2,则执行:S(D)S(D)+spot(i),i=i+1,否则跳转8.3.1;如果i<n+1,则跳转到8.3.1,并继续执行,否则结束;
步骤(8.4),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为0;
步骤(8.4.1)如果S(A)<0.3,则执行:S(A)=S(A)+spot(i),i=i+1,否则跳转8.4.2;如果i<n+1,则继续执行8.4.2,否则结束;
步骤(8.4.2)如果S(B)<0.3,则执行:S(B)=S(B)+spot(i),i=i+1,否则跳转8.4.3;如果i<n+1,则继续执行8.4.3,否则结束;
步骤(8.4.3)如果S(C)<0.2,则执行:S(C)=S(C)+spot(i),i=i+1,否则跳转8.4.4;如果i<n+1,则继续执行8.4.4,否则结束;
步骤(8.4.4)如果S(D)<0.2,则S执行:(D)+spot(i),i=i+1,否则跳转8.4.1;如果i<n+1,则跳转到继续执行8.4.1,否则结束;
步骤(9)将绘制的迷彩图案在AutoCAD中自动重绘:
步骤(9.1)将要软件中迷彩斑点的坐标转换为AutoCAD中坐标;步骤(9.2)用AutoCAD中SPL命令生成所有迷彩斑点在AutoCAD中的绘制命令;
步骤(9.3)最后在AutoCAD命令窗口中粘贴(9.2)中生成好的命令,将迷彩图案在AutoCAD中重绘出来,实现AutoCAD图纸的自动生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510432519.1A CN104966320B (zh) | 2015-07-21 | 2015-07-21 | 一种基于三阶Bezier曲线的伪装迷彩自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510432519.1A CN104966320B (zh) | 2015-07-21 | 2015-07-21 | 一种基于三阶Bezier曲线的伪装迷彩自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104966320A true CN104966320A (zh) | 2015-10-07 |
CN104966320B CN104966320B (zh) | 2017-12-15 |
Family
ID=54220351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510432519.1A Active CN104966320B (zh) | 2015-07-21 | 2015-07-21 | 一种基于三阶Bezier曲线的伪装迷彩自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104966320B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107680145A (zh) * | 2017-08-11 | 2018-02-09 | 清远川奥高新材料有限公司 | 一种地垫图像快速生成方法和系统 |
CN108513636A (zh) * | 2016-12-28 | 2018-09-07 | 深圳配天智能技术研究院有限公司 | 机器人运动控制方法及相关装置 |
CN109712182A (zh) * | 2018-12-28 | 2019-05-03 | 北京工业大学 | 迷彩cad图纸自动生成方法 |
CN109741246A (zh) * | 2018-12-28 | 2019-05-10 | 北京工业大学 | 可见光背景下由环境色生成数码迷彩方法 |
CN109840925A (zh) * | 2018-12-28 | 2019-06-04 | 北京工业大学 | 一种可见光背景下由环境色生成变形迷彩方法 |
CN110472538A (zh) * | 2019-07-31 | 2019-11-19 | 河南冠图信息科技有限公司 | 一种电子图纸的图像识别方法、存储介质 |
CN110717952A (zh) * | 2019-09-23 | 2020-01-21 | 北京工业大学 | 可见光背景下由多图片提取主题色并生成迷彩的方法 |
CN112561844A (zh) * | 2020-12-08 | 2021-03-26 | 中国人民解放军陆军炮兵防空兵学院 | 一种融合纹理结构的数码迷彩图案自动生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU774975B2 (en) * | 2000-08-14 | 2004-07-15 | Canon Kabushiki Kaisha | Method and apparatus for determining the area enclosed by a planar curve |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
CN103106635A (zh) * | 2012-12-26 | 2013-05-15 | 浙江大学 | 数码迷彩信息隐藏方法及装置 |
CN104268330A (zh) * | 2014-09-19 | 2015-01-07 | 华南理工大学 | 一种复杂曲线的Bezier拟合方法 |
-
2015
- 2015-07-21 CN CN201510432519.1A patent/CN104966320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU774975B2 (en) * | 2000-08-14 | 2004-07-15 | Canon Kabushiki Kaisha | Method and apparatus for determining the area enclosed by a planar curve |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
CN103106635A (zh) * | 2012-12-26 | 2013-05-15 | 浙江大学 | 数码迷彩信息隐藏方法及装置 |
CN104268330A (zh) * | 2014-09-19 | 2015-01-07 | 华南理工大学 | 一种复杂曲线的Bezier拟合方法 |
Non-Patent Citations (3)
Title |
---|
PENG BIAN ET AL: "Fuzzy C-means Clustering Based Digital Camouflage Pattern Design and Its Evaluation", 《ICSP2010 PROCEEDINGS》 * |
毕胜 等: "迷彩伪装图案计算机辅助设计研究", 《系统仿真学报》 * |
秦雷 等: "一种新的数码迷彩生成方法", 《光电技术应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108513636A (zh) * | 2016-12-28 | 2018-09-07 | 深圳配天智能技术研究院有限公司 | 机器人运动控制方法及相关装置 |
CN108513636B (zh) * | 2016-12-28 | 2021-08-10 | 深圳配天智能技术研究院有限公司 | 机器人运动控制方法及相关装置 |
CN107680145A (zh) * | 2017-08-11 | 2018-02-09 | 清远川奥高新材料有限公司 | 一种地垫图像快速生成方法和系统 |
CN109712182A (zh) * | 2018-12-28 | 2019-05-03 | 北京工业大学 | 迷彩cad图纸自动生成方法 |
CN109741246A (zh) * | 2018-12-28 | 2019-05-10 | 北京工业大学 | 可见光背景下由环境色生成数码迷彩方法 |
CN109840925A (zh) * | 2018-12-28 | 2019-06-04 | 北京工业大学 | 一种可见光背景下由环境色生成变形迷彩方法 |
CN110472538A (zh) * | 2019-07-31 | 2019-11-19 | 河南冠图信息科技有限公司 | 一种电子图纸的图像识别方法、存储介质 |
CN110717952A (zh) * | 2019-09-23 | 2020-01-21 | 北京工业大学 | 可见光背景下由多图片提取主题色并生成迷彩的方法 |
CN112561844A (zh) * | 2020-12-08 | 2021-03-26 | 中国人民解放军陆军炮兵防空兵学院 | 一种融合纹理结构的数码迷彩图案自动生成方法 |
CN112561844B (zh) * | 2020-12-08 | 2023-05-02 | 中国人民解放军陆军炮兵防空兵学院 | 一种融合纹理结构的数码迷彩图案自动生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104966320B (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104966320A (zh) | 一种基于三阶Bezier曲线的伪装迷彩自动生成方法 | |
CN104463948B (zh) | 三维虚拟现实系统与地理信息系统的无缝可视化方法 | |
CN106296812A (zh) | 同步定位与建图方法 | |
CN103500467B (zh) | 基于图像的三维模型构成方法 | |
Zhao | Application of 3D CAD in landscape architecture design and optimization of hierarchical details | |
CN103714577B (zh) | 一种适用于带纹理模型的三维模型简化方法 | |
CN109903236A (zh) | 基于vae-gan与相似块搜索的人脸图像修复方法及装置 | |
CN104134236B (zh) | 一种三维平面实体的布尔运算方法 | |
CN102819855B (zh) | 二维图像的生成方法及装置 | |
CN111259950B (zh) | 一种基于3d模型训练yolo神经网络的方法 | |
CN104658033A (zh) | 多光源下的全局光照绘制方法及装置 | |
CN109783887A (zh) | 一种面向三维加工特征的智能识别与检索方法 | |
CN104123747A (zh) | 多方式触控三维建模方法和系统 | |
CN105184843B (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
CN105488844B (zh) | 一种三维场景中海量模型实时阴影的显示方法 | |
CN113449355A (zh) | 一种基于人工智能的建筑户型图自动生成方法 | |
CN103366395B (zh) | 一种基于gpu加速的体数据非真实感绘制方法 | |
CN108460835A (zh) | 一种将几何对象融入体绘制结果的方法 | |
CN105956995A (zh) | 一种基于实时视频本征分解的人脸外观编辑方法 | |
CN104392489A (zh) | 顾及拓扑的三维地理空间实体群的线消隐方法 | |
CN101764940A (zh) | 一种基于像素空间掩码矩阵模型的字幕渲染方法 | |
CN107833198A (zh) | 一种基于大尺度分解的户外场景重光照方法 | |
Yuan et al. | The Fusion Method of Virtual Reality Technology and 3D Movie Animation Design. | |
CN105913473A (zh) | 一种卷页特效的实现方法及系统 | |
Guo et al. | Multichannel 3D ink painting rendering model based on the LMS algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180705 Address after: 100083 No. 1408-56, Shi Ning mansion, 35 Xueyuan Road, Haidian District, Beijing. Patentee after: Beijing stealth Engineering Technology Research Institute Co., Ltd. Address before: No. 100, Chaoyang District flat Park, Beijing, Beijing Patentee before: Beijing University of Technology |