Android에서 OpenCV를 처음 사용했습니다. C++ 코드를 Java로 변환하려고합니다. 나는 내가 계속할 수없는 어떤 지점에 갇혀있다. 내가 혼란 해요 TODOVec4i를 Java로 변환 openCV
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];
}
개까지 .. 변환
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];
}
반 방법은 루프 내부입니다. 배열로 변환 된 행은 int 배열을 제공합니다. 그러나 for 루프 내부에는 v가 다시 정의되고 배열이어야합니다. 나는이 점을 이해하지 못했다. 아무도이 문제를 해결할 수 있도록 도와주세요. 미리 감사드립니다.
나는 이것을 구현했다. 하지만 결과 매트에 선이 없습니다. ~ –