场景是我希望我的应用程序处理(如果可能的话,在后台)iPhone相机看到的图像。
例如,应用程序正在运行,用户将手机放在一块红色纸板上,而不是想要显示一个警报视图,上面写着"手机放置在红色表面上"(这是我想要做的简化版本,但只是为了保持问题直接)。
希望这是有道理的。我知道这里有两个不同的问题。
- 如何在应用程序后台处理来自相机的图像(如果我们不能做到这一点,我们可以在需要时单击按钮来启动该过程)。
- 处理图像以显示它所在的纯色。
任何帮助/指导将不胜感激。
谢谢
两个问题的通用答案:
- 图像的后台处理可以作为计时器事件触发。 例如,每30秒捕获屏幕上的图像并在后面进行处理。 如果处理不是计算/时间密集型的,这应该可以工作
- 从技术上讲,可以通过编程方式知道一个像素的颜色。 如果您确定整个图像只是一种颜色,则可以尝试该方法。 获取几个随机点并获取图像中像素的颜色。 但是,如果图像(在您的示例中为红板)由图像或多种颜色组成,则需要详细的图像处理技术。
希望这有帮助
1) 图像捕获
有两种类型的应用程序可以持续从相机中获取图像:媒体捕获(例如相机,iMovie)或增强现实应用程序。
以下是用于媒体捕获的 iPhone SDK 教程:
https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html#//apple_ref/doc/uid/TP40010188-CH5-SW3
使用iPhone SDK访问相机
增强现实应用程序从相机中连续拍摄照片以进行处理/叠加。我建议你研究一些可用的AR套件,看看它们如何从相机获得连续的流,并分析像素。
启动增强现实 (AR) 应用程序,如松下 VIERA AR 设置模拟器
http://blog.bordertownlabs.com/post/157320598/customizing-the-iphone-camera-view-with
2) 图像处理
图像处理是一个非常大的话题,在多个其他地方已经解决过:
https://photo.stackexchange.com/questions/tagged/image-processing
https://dsp.stackexchange.com/questions/tagged/image-processing
https://mathematica.stackexchange.com/questions/tagged/image-processing
..但对于初学者来说,您需要使用一些启发式分析来确定您要查找的内容。在一堆地方(例如角落+中间)对捕获的像素进行采样可能会有所帮助,生成颜色强度的直方图也会有所帮助 - 如果有很多红色但很少或没有蓝色和绿色,那就是一张红牌。