如何找到自定义形状特定区域?

时间:2013-03-07 16:16:24

标签: graphics graph geometry computational-geometry java-2d

请看下面的图片,在这里你可以看到蓝色矩形是自定义形状边界,自定义形状是鞋子,我想找到一个部分写在图像中的区域,我希望该区域以矩形的形式

有没有路径迭代器概念?

注意

自定义形状我从相同大小的图像派生。

enter image description here

1 个答案:

答案 0 :(得分:0)

我会这样做:

1.为所有边界框直线周边线创建表格

  • 其中的每个值将表示形状边界线的空白长度
  • 这样的事情:

shape perimeter space

  • 通过简单的图像扫描找到值,直到找到第一个非空间颜色

2.现在bruteforce找到最大的矩形区域

x,y = top left corner
 for  xs = 1 to bounding box width
  now scan the max valid height of rectangle from x to x + xs (x grows to the right)
  // it should be the min y0[x..x+xs]
   remember the biggest valid area/size combination
  • 为所有4种组合(来自其他角落的星星)执行此操作

我现在蛮力很慢但是

  • 您可以不按像素划分周长线,而是使用一些步骤来划分
  • 我也相信这可以以某种方式进行优化
  • 例如,通过推导周界找到极值并向后检查
  • 当尺寸开始缩小然后停止......
  • 当然要记住,在复杂的形状上,这种优化不起作用......