【发布时间】:2013-10-29 07:04:43
【问题描述】:
我是 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 ,它应该是一个数组。我没有明白这一点。任何人都可以帮我解决这个问题。提前谢谢你。
【问题讨论】:
-
我已经实现了这个。但我在我的结果垫上找不到任何线条。请指导——
标签: java android c++ opencv vector