【发布时间】:2017-06-01 22:43:36
【问题描述】:
我在 Android Studio 中有两个 Mat 图像,它们是 BGRA (8UC4)。我希望能够从两个图像中提取 BGRA 像素值,方法是一次遍历每个像素,然后找到它们在 RGB 值中的绝对差异。我不想减少透明度,所以我不能使用 Core.absdiff()。是否有捷径可寻?我已经使用 mat.get() 和 mat.put() 实现了这个功能,但它非常慢。
我已经看到下面发布的解决方案,但我不确定它是如何工作的,或者我如何更改它以使用我的图片/所需的功能:
Mat A ;
A.convertTo(A,cvType.CV_16SC3);
int size = (int) (A.total() * A.channels());
short[] temp = new short[size];
A.get(0, 0, temp);
for (int i = 0; i < size; i++)
temp[i] = (short) (temp[i] / 2);
C.put(0, 0, temp);
我读到的大部分内容都涉及将 Mat 数据放入 Java Primitive 类型。由于我是 Java 和 OpenCV 的新手,我不太确定这意味着什么?
谢谢
【问题讨论】:
标签: java android android-studio opencv rgba