ValueError: Parameters "fully_connected" must be either "high" or "low".
时间: 2023-07-08 07:51:54 浏览: 183
非常抱歉,我之前的回答中 `fully_connected` 参数的取值有误。在 `skimage.measure.find_contours` 函数中,`fully_connected` 参数应该是 `"high"` 或者 `"low"`,分别对应着 8 连通和 4 连通。因此,正确的 Python 代码应该是这样的:
```python
from skimage.measure import find_contours
# BO_hb 是二值图像
contours = find_contours(BO_hb, 0.5, connectivity=4)
# B 是包含所有边界点坐标的列表
B = [contour[:, ::-1] - 0.5 for contour in contours]
```
这里使用 `connectivity=4` 指定了 4 连通,得到的结果与 MATLAB 中的 `bwboundaries` 函数使用 `"noholes"` 参数的效果是相同的。
相关问题
File "D:\Programming\envs\env_pytorch\Lib\site-packages\skimage\measure\_find_contours.py", line 128, in find_contours raise ValueError('Parameters "fully_connected" must be either ' ValueError: Parameters "fully_connected" must be either "high" or "low".
根据错误提示,`ValueError: Parameters "fully_connected" must be either "high" or "low"`,意味着在 `measure.find_contours` 函数中,`fully_connected` 参数只能设置为字符串 `"high"` 或 `"low"`。这是因为 `fully_connected` 参数在 `skimage` 1.0 版本中发生了变化,只能接受字符串参数 `"high"` 或 `"low"`,表示使用不同的连接方式。
例如,要使用 `"high"` 连接方式,可以这样调用 `measure.find_contours` 函数:
``` python
import numpy as np
from skimage import measure
# 创建一个 10 x 10 的二维矩阵
image = np.zeros((10, 10))
# 在矩阵上绘制一个三角形
image[2:8, 2:8] = np.tri(6, 6)
# 查找轮廓
contours = measure.find_contours(image, 0.5, fully_connected="high")
# 输出轮廓数量
print(len(contours)) # 2
```
注意,在 `skimage` 1.0 版本之前,`fully_connected` 参数可以设置为布尔值 `True` 或 `False`,表示使用 4-连接或 8-连接。如果你使用的是旧版本的 `skimage`,可以将 `fully_connected` 设置为布尔值。但是,建议使用最新版本的 `skimage` 并使用字符串 `"high"` 或 `"low"` 来设置 `fully_connected` 参数。
解释一段python代码 class KalmanFilter(object): def init(self, dim_x, dim_z, dim_u=0): if dim_x < 1: raise ValueError('dim_x must be 1 or greater') if dim_z < 1: raise ValueError('dim_z must be 1 or greater')
这是一个定义了KalmanFilter类的Python代码,其中包含一个初始化方法_init_。这个类用于实现卡尔曼滤波器,可以对系统的状态进行估计和预测。其中参数dim_x表示状态量的维度,dim_z表示观测量的维度,dim_u表示控制量的维度。在初始化方法中,首先判断dim_x和dim_z是否大于等于1,如果不是则会抛出ValueError异常,这是为了确保程序的安全性和正确性。
阅读全文