CIDetector可检测任何对象边界框

时间:2019-01-30 14:40:45

标签: swift macos core-image vision

想象一下,像这样的图像阵列 with white gap insde gapless uncentered backgrounded

背景始终是白色的(即使在第三张照片中,主要对象是里面有形状的大棕色矩形)

无论图像的给定类型是什么,您都需要: 1)找到主要对象的边界矩形 2)像这样裁剪出来

cropped out

3)并将其放置在空白方形图像的中心。

您将如何实现?我已经知道如何裁剪所有已知的矩形并将其放置在任何地方,但是我只需要知道哪种方法是第一步的最佳选择。 Vision API可以检测矩形,人脸和条形码,但似乎我需要的甚至更简单。 我只需要找到最左边,最右边,顶部和底部的非白色像素,这将是我的范围。 除了为每个像素迭代pixelBuffer之外,还有什么方法吗?

1 个答案:

答案 0 :(得分:0)

这些图像是什么类型? UIImageCAShapeLayer?在大多数情况下,您应该能够从数组中的每个图像获取.frame,这将为您提供CGRect的X和Y原点坐标以及高度和宽度尺寸。您还应该可以访问.midX.midY坐标,或者.center.x.center.y来查找所需的中点。除非您要谈论的是获取一个扁平的位图(如.jpg或.png)并在内容上进行某种形状检测,否则,您将需要像Vision之类的东西来完成您要尝试的工作。