从实时相机预览中获取特定像素的颜色 - 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的主要内容,如果未能解决你的问题,请参考以下文章

从相机意图中获取像素的颜色

检测实时android相机预览的颜色代码

从 2d 图像像素获取 3d 坐标系中的 x,y

安卓相机X |颜色检测

Ionic Camera Preview 插件是不是提供全质量图片?

从背景中的窗口获取像素颜色