从特定规则的图片中提取轮廓

网站建设4年前发布
11 0 0

20230306101411f74177b15682be54c52459e44b4dffacb85f2d600,目前,用户线上看车、选车方式千篇一律,为了能带给用户更好的看车体验,足不出户掌握360°车源细节,商家就需要对车源进行360°的外观采集。在开发车智赢+App外观采集拍摄组件的过程中发现,如果仅仅通过示例图来引导商家完成360°的车源外观采集,效果会因为拍摄距离、拍摄角度等问题难以得到保证。,先将示例图片转成 Bitmap 点,根据图片已知的特定规则,从上、下、左、右四个方向进行扫描,扫描出四条边的点数组,四条边的点数组进行合并,最终生成一个完整有序的点数组,再将生成的点数组每个点相连,生成一个闭合图形的 BezierPath。,20230306120549946c04269e3fd540d8e4630777b30e3e71895494720230306101412b98b7d3663dee5b1ada341613429318db25527580,四条边的点数组直接合并,然后每个点相连,生成一个闭合图形的 BezierPath,其实这个思路是有问题的,四条边的点数组中存在重复的点,直接相邻的点相连,出来的图形就会如上图所示。如果只是简单的排重,又会遇到数组中的点不连续等问题。所以这边又重新调整了实现的思路,先水平方向左、右两条边的点数组排重,然后垂直方向上、下两条边的点数组排重。再通过垂直方向上、下两条边的点数组去补偿左、右两条边的点数组,最后合并水平方向补偿完的左、右两条边的点数组。,202303061014137318a824162b2635f57433dc5aee829517124f549,20230306101546b847105451a27891694726fc731dda91a04859618,效果展示,20230306101414487123434a93418588f8642d4423678afd98e6986202303061014149262fb732ce1bd858b17297e9a1dfb2fe9c56d261,2023030610141587378983200584306e8475e82e41bb930b2cd365820230306101416b4edb6e04502cd824c71275f5dbaa46254b6ec395,从图片中获取轮廓的方案有很多种,例如:OpenCV、Vision 框架、DeepLab 等。在我们这次的需求中,示例图是有特定规则的,所以获取轮廓并不是特别复杂。一步一步按着预想的思路就可以实现,所以最终我们没有采用额外引入其他框架来实现。当然上述获取轮廓的思路并不一定是最优解,后续还需要我们继续思考和优化。

© 版权声明

相关文章