module 'tsp_solver' has no attribute 'solve_tsp'
时间: 2023-10-02 13:07:59 浏览: 156
tsp.rar_TSP问题
如果你在运行上述代码时出现了“module 'tsp_solver' has no attribute 'solve_tsp'”错误,那么很有可能是tsp_solver库的版本问题导致的。
tsp_solver库的最新版本(截至2021年8月)是0.3.1,但是在这个版本中,原来的solve_tsp函数被重命名为solve_tsp_dynamic_programming。
因此,如果你使用的是最新版本的tsp_solver库,那么可以将代码中的solve_tsp函数替换为solve_tsp_dynamic_programming函数,即可解决该错误,代码如下:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
import tsp_solver
# 读入图片
img = cv2.imread('example.jpg')
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 100, 200)
# 提取点
points = np.argwhere(edges > 0)
points = [tuple(point[::-1]) for point in points]
# TSP路径规划
path, _ = tsp_solver.solve_tsp_dynamic_programming(points)
# 画出TSP路径
for i in range(len(path) - 1):
cv2.line(img, points[path[i]], points[path[i+1]], (0, 0, 255), 2)
# 显示结果
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
# 输出点的坐标
print(points)
```
如果你仍然遇到问题,请尝试卸载tsp_solver库并重新安装,或者降低tsp_solver库的版本到0.2.1。
阅读全文