从实时相机预览中获取特定像素的颜色 - Ionic
Posted
技术标签:
【中文标题】从实时相机预览中获取特定像素的颜色 - Ionic【英文标题】:Get colour of particular pixel from live camera preview - Ionic 【发布时间】:2017-10-21 14:15:39 【问题描述】:我正在尝试重新创建类似于此的功能: using Ionic。
屏幕截图展示了实时相机预览中的内圈,该内圈捕捉颜色,外圈显示当前正在查看的像素的颜色。
我有使用叠加层的实时相机预览,但是我不知道从哪里开始从屏幕上的特定位置抓取颜色。
我知道您可以通过这种方式拍照并获取颜色,但这不是我所追求的功能,我正在寻找可以让我实时查看结果的东西。
这个功能可以实现吗?如果是这样,我该怎么做?
【问题讨论】:
如果您已经有一个工作预览,那么您还可以分析交付的帧(例如onPreviewFrame()
),您可以获得特定像素的颜色,例如that。您可以使用that 之类的方式获取图像/帧上的触摸坐标。玩得开心! :-)
【参考方案1】:
这个功能可以实现吗?如果是这样,我该怎么做?
我在我的应用程序中遇到了类似的情况,所以认为这会有所帮助。
我正在创建一个用于实时图像处理的 Cordova-Angular Hybrid 应用程序:
打开前置摄像头,在摄像头前面显示不同的物体。
如果在字典中找到对象,则显示成功消息并停止预览。
步骤如下:
创建了新的 Cordova 插件,以 在预览模式中启动相机。要获取预览的当前图像,您需要覆盖 onPreviewFrame 方法。
获取图像的缓冲区并转换并匹配。
根据成功/失败调用回调方法。
现在我认为在您的情况下,第 1 步将与一些额外的步骤相同。
创建新的 Cordova 插件,它将在 预览模式下启动相机。要获取预览的当前图像,您需要覆盖 onPreviewFrame 方法。
重写 onTouchEvent 方法计算 ImageView 内的点,同时计算 onPreviewFrame 方法内框架的像素。
获得结果后,只需使用结果更新视图即可。
另外我认为这个 ionic 应用程序的主要部分仍然是原生的。Cordova 只会做桥接。
参考资料:
http://topandroidphones1.blogspot.com/2012/04/get-color-on-specified-location-from.html
OnPreviewFrame data image to imageView
Get the touch position inside the imageview in android
How to Get Pixel Color in Android
Capturing the Camera Preview with a PreviewCallback
【讨论】:
以上是关于从实时相机预览中获取特定像素的颜色 - Ionic的主要内容,如果未能解决你的问题,请参考以下文章