remove_small_objects中,数组与图像
时间: 2024-03-20 11:43:58 浏览: 66
在使用remove_small_objects函数时,可以传入一个二值化的图像或者一个布尔类型的数组。这里的二值化图像指的是只有黑白两种颜色的图像,黑色表示像素点的值为0,白色表示像素点的值为1。
如果传入的是一个二值化的图像,那么函数内部会将其转换为一个布尔类型的数组,即黑色的像素点对应的数组元素为False,白色的像素点对应的数组元素为True。这个数组会被函数修改,并且返回一个修改后的数组,也就是说原始的图像并不会被改变。
如果传入的是一个布尔类型的数组,那么函数会直接对这个数组进行修改,并且返回修改后的数组。
以前面的示例为例,我们可以将创建数组的代码改为创建图像的代码:
```python
from skimage import data
from skimage import morphology
# 读取一张灰度图像,并将其二值化
image = data.camera()
image = image > 128
# 使用remove_small_objects去除小对象
image = morphology.remove_small_objects(image, min_size=200, connectivity=1)
# 显示去除小对象后的图像
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.imshow(image, cmap=plt.cm.gray)
plt.show()
```
在这个例子中,我们首先读取了一张灰度图像,并将其二值化,然后使用remove_small_objects函数去除了面积小于200的对象,并将结果显示出来。由于我们传入的是一个图像,因此函数会自动将其转换为一个布尔类型的数组。
阅读全文