4

我正在实现一个应用程序,我的应用程序需要根据背景裁剪图像。我在文档扫描应用程序中看到了类似的行为,它们会自动拾取图像边框以进行裁剪。有人可以帮我弄清楚如何实现此功能吗?

免责声明:我认为这可能是一个“Askdifferent - Apple”问题,但他们把我送回了SO. 所以,如果这不属于,请让我知道在哪里问。

更新:回应评论,这是我到目前为止所做的:

  • 应用程序启动相机,
  • 设置取景器的 AVSession,
  • 预设为照片,捕捉图像,保存到文件
  • 我还通过使用 CG API 压缩为所有图像创建小缩略图预览。
  • 使用 AQGridView 显示图像。

目标不是压缩,而是显示“自动裁剪”图像以AQGridview提供更好的用户体验。根据我的应用程序的性质,它与收据扫描非常相似,因为在相对清晰的背景上,主体可能只占据图像的一小部分。希望它有助于澄清..

4

1 回答 1

1

解决这个问题的一种相当简单的方法是从上到下扫描图像并查看每一行中值的配置文件。当您离开打印区域时,您基本上可以看到背景,即轮廓非常平坦,具有缓慢变化的高值(明亮值)以及噪声波动。当您遇到打印特征时,配置文件将在至少一个颜色组件上显示负阶跃。

为了以稳健的方式检测它们,我建议隔离严格递减的值序列,并在总递减量达到给定阈值时考虑重大事件。这将为您提供最上面的裁剪线。您还可以通过检查减少后的暗区是否足够长来减少错误检测。

从底部开始重复此操作,同样从左侧和右侧开始。

于 2012-05-08T09:45:43.277 回答