Traceback (most recent call last): File "i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\test.py", line 43, in <module> plt.imshow(mark_boundaries(img, segments)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\win10\AppData\Local\Programs\Python\Python311\Lib\site-packages\skimage\segmentation\boundaries.py", line 238, in mark_boundaries marked[boundaries] = color ~~~~~~^^^^^^^^^^^^ ValueError: shape mismatch: value array of shape (3,) could not be broadcast to indexing result of shape (5732,4)
时间: 2023-07-21 07:03:01 浏览: 124
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误是由于您的代码中传递给 `mark_boundaries` 函数的 `color` 参数的形状与 `boundaries` 参数不一致导致的。您可以尝试检查 `color` 参数的形状是否正确,并确保其与 `boundaries` 参数具有相同的形状。您可以尝试使用 `np.tile` 函数来将 `color` 参数复制成与 `boundaries` 参数相同的形状。例如:
```
import numpy as np
from skimage.segmentation import mark_boundaries
color = np.array([255, 0, 0]) # 3个通道的颜色值
color = np.tile(color, (len(segments), 1)) # 将 color 参数复制成与 boundaries 参数相同的形状
plt.imshow(mark_boundaries(img, segments, color=color))
```
请注意,这只是一个例子,您需要根据您的代码和数据对其进行修改。
阅读全文