谷歌视觉框架分为两个
在我的自定义检测器中,我想将图像从帧分成两半,分别进行处理。 这是我在自定义Detector
迄今所得到的结果:
val imageArray = frame?.grayscaleImageData?.array() val upperImageBuffer = ByteBuffer .allocate(imageArray?.size ?: 0) .put(imageArray, 0, imageArray?.size?.div(2) ?: 0) val upperFrame = Frame.Builder(). setImageData(upperImageBuffer, frame?.metadata?.width ?: 0, frame?.metadata?.height?.div(2) ?: 0, frame?.metadata?.format ?: 16). setRotation(frame?.metadata?.rotation ?: 0). build() val lowerFrame... etc val upperDetections = delegateDetector.detect(upperFrame) upperDetections.forEach { key, barcode -> if (barcode is Barcode) results.append(key, barcode) } val lowerDetections = delegateDetector.detect(lowerFrame) etc.
到目前为止,我在两者上都使用了相同的探测器(这实际上是为了检查我是否会在整个帧中识别更多的结果 – 就像听起来一样愚蠢,但是我留下了问题,因为也许有人未来将需要采取一个部分的图像由一个探测器处理,另一个由另一个处理)。
不过,问题是:我得到相同的结果两半,实际上是从原来的框架相同。 我做错了什么?
CameraSource的grayscaleImageData也包含颜色,但以灰度通道为前缀。 也就是说,它被格式化为YUV,而不仅仅是Y通道(灰度)。
因此,而不是使用imageArray.size,使用frame.width * frame.height作为大小。
- 如何用kotlin 1.1.0 kotlinx-coroutines-core lib的功能替换Anko的doAsync,uiThread?
- 错误:未找到注释处理器'__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'
- 复制Googlemap上的APK protobuf.meta文件复制商业用途
- kotlin验证输入字段
- Kotlin和Android lint检查
- Kotlin Android扩展缓存合成属性还是每次调用findViewById()?
- Firebase-Firestore不能同时加载2个文档的信息
- 如何创建像anko – DSL语法Kotlin嵌套函数回调
- Kotlin || 无法将库添加到我的应用程序?