5

AndroidでOpenCVを初めて使用します。C++ コードを Java に変換しようとしています。先に進めないところに行き詰まっています。

std::vector<cv::Vec4i> lines;
cv::HoughLinesP(bw, lines, 1, CV_PI/180, 70, 30, 10);

    // Expand the lines
    for (int i = 0; i < lines.size(); i++)
    {
        cv::Vec4i v = lines[i];
        lines[i][0] = 0;
        lines[i][1] = ((float)v[1] - v[3]) / (v[0] - v[2]) * -v[0] + v[1]; 
        lines[i][2] = src.cols; 
        lines[i][3] = ((float)v[1] - v[3]) / (v[0] - v[2]) * (src.cols - v[2]) + v[3];
    }

途中で変換しました..TODOまで

MatOfInt4 lines= new MatOfInt4();
Imgproc.HoughLinesP(bw, lines, 1, Math.PI/180, 70, 30, 10);

int[] lineArray = lines.toArray();
// Expand the lines
//TODO 


 for (int i = 0; i < lineArray.length; i++)
    {
        int v = lineArray[i];
        lines.[i][0] = 0;
        lines[i][1] = ((float)v[1] - v[3]) / (v[0] - v[2]) * -v[0] + v[1]; 
        lines[i][2] = src.cols(); 
        lines[i][3] = ((float)v[1] - v[3]) / (v[0] - v[2]) * (src.cols() - v[2]) + v[3];
    }

私が混乱しているのは for ループの中にあります。行を配列に変換すると、int配列が得られます。しかし、for ループの中で再び v が定義され、これは配列でなければなりません。この点がわかりませんでした。誰でも私がこれを乗り越えるのを手伝ってくれませんか。前もって感謝します。

4

1 に答える 1