skimage库中regionprops无法返回intensity_mean并报错的技术咨询
解决skimage regionprops无法获取intensity_mean的问题
问题根源
intensity_mean是用来计算区域平均灰度值的属性,它需要依赖原始的灰度图像数据才能计算。你现在调用regionprops只传了标签图label_img,没给对应的原始强度图像,所以函数根本没法生成这个属性,自然会报错。
修复代码
把二值化前的原始灰度图像作为第二个参数传给regionprops就行:
from skimage import data, util from skimage.measure import label, regionprops # 先保存原始灰度图像 img_gray = util.img_as_ubyte(data.coins()) # 生成二值图用于区域标注 img_binary = img_gray > 110 label_img = label(img_binary, connectivity=img_binary.ndim) # 同时传入标签图和原始灰度图 regions = regionprops(label_img, img_gray) for region in regions: print(region.intensity_mean)
重要提示
regionprops的第二个参数是可选的强度图像,只有传入这个参数,才能计算intensity_mean、intensity_min这类和像素强度相关的属性。- 注意别把二值化后的
img_binary传进去,那是布尔值数组,没法得到正确的平均灰度,必须用二值化之前的原始灰度图。
内容的提问来源于stack exchange,提问作者Ajinkya Kulkarni
相关产品推荐
相关产品推荐

