我正在开发一个使用 OpenCV 的项目,Python 在项目的某些部分使用概率霍夫线变换函数“HoughLinesP”。我的代码工作得很好,没有问题。然后我想到将相同的代码转换为 C++。
将代码转换为 C++ 后,输出与 Python 代码的输出不一样。经过长时间的调试,我发现其他一切正常,但“HoughLinesP”函数在 C++ 的情况下给出了不同的输出。两种语言对这个函数的输入是一样的,参数的值也一样,但是输出是不同的。
有人可以解释一下为什么会发生这种情况以及任何可能的修复方法吗?
此外,我已经检查了两种语言的 OpenCV 版本,它是相同的:
4.5.0 dev
此外,我尝试使用传递给 C++ 代码的值,但我无法获得类似的结果。
输入边缘图像:
Python HoughLinesP() 输出:
C++ HoughLinesP() 输出:
以下是每种语言的代码: Python:
Lines = cv2.HoughLinesP(EdgeImage, 1, np.pi / 180, 50, 10, 15)
Run Code Online (Sandbox Code Playgroud)
C++:
std::vector<cv::Vec4i> Lines;
cv::HoughLinesP(EdgeImage, Lines, 1, CV_PI / 180, 50, 10, 15);
Run Code Online (Sandbox Code Playgroud)
如果有人可以提出建议,那将是一个很大的帮助。