PIL / Pillow中是否有一个功能,对于灰度图像,是否会将图像分离为包含构成原始图像的组件的子图像?例如,png灰度图像,其中包含一组块。在这里,图像类型始终与背景形成高对比度。
我不想使用openCV,我只需要一些普通的blob检测,并且希望Pillow / PIL可能已经有了这样做。
答案 0 :(得分:0)
是的,有可能。您可以在PIL中使用edge
检测算法。
示例代码:
from PIL import Image, ImageFilter
image = Image.open('/tmp/sample.png').convert('RGB')
image = image.filter(ImageFilter.FIND_EDGES)
image.save('/tmp/output.png')
sample.png:
output.png:
答案 1 :(得分:0)
不使用PIL,但我认为值得一看:
我首先列出了我作为numpy
数组列表导入的图像文件列表,然后创建了一个布尔版本列表,其中threshold
为> 0
from skimage.measure import label, regionprops
import numpy as np
bool_array_list= []
for image in image_files:
bool_array = np.copy(image)
bool_array[np.where(bool_array > 0)] = 1
bool_array_list.append(bool_array)
img_region_list = []
然后我使用标签来识别不同的区域,使用8方向连接,regionprops
为我提供了一系列指标,例如大小和位置。
for item in bool_array_list:
tmp_region_list = regionprops(label(item,
connectivity=2
)
)
img_region_list.append(tmp_region_list)