gpt4 book ai didi

java - 将 3x3 OpenCV Mat 转换为 Android 矩阵

转载 作者:行者123 更新时间:2023-12-02 06:12:15 26 4
gpt4 key购买 nike

我有一个 OpenCV 格式的 3x3 矩阵 (org.opencv.core.Mat),我想将其复制到 android.graphics.Matrix 中。知道怎么做吗?

[编辑]

这是受 @elmiguelao 启发的最终版本。源矩阵来自 OpenCV,目标矩阵来自 Android。

static void transformMatrix(Mat src, Matrix dst) {

int columns = src.cols();
int rows = src.rows();

float[] values = new float[columns * rows];
int index = 0;
for (int x = 0; x < columns; x++)
for (int y = 0; y < rows; y++) {
double[] value = src.get(x, y);
values[index] = (float) value[0];

index++;
}

dst.setValues(values);
}

最佳答案

大致如下:

cv.Mat opencv_matrix;
Matrix android_matrix;
if (opencv_matrix.isContiguous()) {
android_matrix.setValues(cv.MatOfFloat(opencv_matrix.ptr()).toArray());
} else {
float[] opencv_matrix_values = new float[9];
// Undocumented .get(row, col, float[]), but seems to be bulk-copy.
opencv_matrix.get(0, 0, opencv_matrix_values);
android_matrix.setValues(opencv_matrix_values);
}

关于java - 将 3x3 OpenCV Mat 转换为 Android 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21784023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com