• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 从照片背景中检测并切出聚焦对象

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:13:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想检测相机中聚焦的对象,并将未聚焦的背景剪掉并替换为图像。这可能吗?



Best Answer-推荐答案


勉强有可能,但需要一些繁重的计算。据我所知,没有现成的 iOS 库。所以如果你问,“有没有可能轻松做到这一点?”,我会回答,恐怕不会

出现的工具通常会使用一些快捷方式,例如

  • 利用人脸检测(即只要“对象”是人脸,它们就可以工作)
  • 利用区域分析(即他们检查图片中间的任何内容,无论是否集中)

我相信 Quartz 可以进行人脸识别。无论如何,请查看 Face Recognition on the iPhone .

在一般和杂乱的情况下,您通常可以通过分析图像中的对比度或空间频率来识别焦点区域(假设存在),这些区域被划分为小区域(通常为 16x16 或 8x8 像素)。那些对比度低和/或高频缺失的区域是背景,而高频(锐度)的存在则表示聚焦区域。

这不会告诉您图像边界,还会给出几个误报(可能还有负数);但在此阶段结束时,您将获得原始图像的采样,其中每个纹素的状态为“已聚焦”、“未聚焦”和“不确定”,例如 16 像素边。

您必须对这张 map 应用启发式方法,例如:

  • 边框通常是背景的一部分(因此应该测试为阳性)
  • 小尺寸的重点区域可能是假阴性
  • 小尺寸的未聚焦区域可能是误报

在此优化阶段结束时,您应该有一些连续的大“ Blob ”重点区域。然后检查它们的边界,寻找颜色或亮度的急剧过渡(通常在从 Blob 中心的径向方向上)。这是另一个启发式方法:我们假设您不会将红色苹果聚焦在红色背景上,或者如果您这样做,苹果将具有显示黄色、白色或非常浅红色的高光,并允许跟踪“轮廓”。

一旦每个 Blob 都有自己的轮廓,您就可以将其用作切口。

您必须使用 Core Image 等工具来完成所有这些操作

http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/ci_intro.html

或者,更适合该任务的 vImage

http://developer.apple.com/library/ios/#documentation/Performance/Conceptual/vImage/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001001

关于ios - 从照片背景中检测并切出聚焦对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376745/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap