我有1797个Mnist图像,为此我需要提取两个特征(filledrea,EulerNumber)。我知道如何在Matlab中实现它。我的特征矩阵在Matlab中的大小是(并且是正确的)1797*2(每个维度1797)
matlab代码(正常工作)
for i = 1:2*N
img = regionprops(BW(:,:,i),'FilledArea', 'Solidity');
features(i, 1) = img.EulerNumber;
features(i, 2) = img.FilledArea;
clear img;
end
我想在python中使用Skimage regionprops做同样的事情,但是对于1797个图像,我得到了29350*2个特性(每个特性有29350个道具),根据我的理解应该是1797*2
python代码(工作不正常)
digits = datasets.load_digits()
label_img = digits.images
rps = regionprops(label_img, cache=False)
print(len([r.area for r in rps])) #29350
print(len([r.euler_number for r in rps])) #29350
我的方法可能有什么问题?为什么我的每个特性都有29350个元素而不是1797?你知道吗
就像在Matlab中需要一个for循环来计算每个图像的属性一样,在Python中也需要一个for循环。目前,您正在计算单个3D形状图像(1797,8,8)的属性,而不是1797个2D形状图像(8,8)。下面是一些与您所追求的内容相当的Python代码:
相关问题 更多 >
编程相关推荐