i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\maskslic\slic_superpixels.py:362: UserWarning: The following kwargs were not used by contour: 'contours' plt.contour(msk, contours=1, colors='yellow', linewidths=1) Time: 5.17 s Traceback (most recent call last): File "i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\run_self", 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 (5046,4)
时间: 2023-07-21 14:26:57 浏览: 141
根据你提供的信息,这个错误似乎是由于在使用 plt.contour 函数时,给出了一个未使用的参数 'contours'。此外,由于 'contours' 参数被忽略,导致了 plt.contour 函数的输出形状与后续的 mark_boundaries 函数所需的形状不匹配,从而引起了 ValueError。建议检查代码中 plt.contour 函数的参数是否正确,并尝试删除未使用的参数。如果问题仍然存在,可以提供更多的代码和数据信息,以便更好地理解问题的本质。
相关问题
PS I:\18Breakageratecalculation\mask-slic use\maskSLIC-master> & C:/Users/win10/AppData/Local/Programs/Python/Python311/python.exe "i:/18Breakageratecalculation/mask-slic use/maskSLIC-master/test.py" Traceback (most recent call last): File "i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\test.py", line 8, in <module> import maskslic as seg File "i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\maskslic\__init__.py", line 1, in <module> from .slic_superpixels import slic File "i:\18Breakageratecalculation\mask-slic use\maskSLIC-master\maskslic\slic_superpixels.py", line 21, in <module> from maskslic.processing import get_mpd ModuleNotFoundError: No module named 'maskslic.processing'
这个错误提示告诉我们在你的代码中有一个名为 `maskslic.processing` 的模块没有被找到,可能是因为你的 Python 环境中没有安装这个模块。你可以尝试通过以下命令来安装需要的模块:
```
pip install maskslic
```
如果你已经安装了这个模块,可以尝试更新模块或检查模块的版本是否与你的代码兼容。
class_labels = { 0: r'I:\18Breakageratecalculation\mask-slic use\maskSLIC-master\result\result6\slic_pellucid\non-broken roofing', 1: r'I:\18Breakageratecalculation\mask-slic use\maskSLIC-master\result\result6\slic_pellucid\broken roofing', 2: r'I:\18Breakageratecalculation\mask-slic use\maskSLIC-master\result\result6\slic_pellucid\courtyard' }计算类被为1的像素点/(类别为+类别为的像素点)
根据您提供的代码,我可以看出这是一个Python字典类别标签和它们对应的路径。要计算类别为1的像素点占总像素点的比例,需要知道类别为1的像素点数和所有类别为1或类别为2的像素点数。代码如下:
```
import cv2
import numpy as np
# 读取图像
img = cv2.imread('your_image_path', cv2.IMREAD_GRAYSCALE)
# 类别为1的像素点数
class_1_pixels = np.sum(img == 1)
# 类别为1或类别为2的像素点数
total_pixels = np.sum(np.isin(img, [1, 2]))
# 计算比例
ratio = class_1_pixels / total_pixels
print('类别1像素点占比:', ratio)
```
请将 `your_image_path` 替换为您的图像路径。
阅读全文