如何对2D医学图像应用模糊C均值分割?对应报错如何解决?
错误原因
你在调用np.reshape()时传入的第二个参数不符合规范:np.reshape(a, newshape)的第二个参数需要是表示目标维度的整数元组,但你传入了pic_n这个形状为(262144, 3)的数组本身,numpy误将数组内的所有元素识别为维度参数,远超numpy支持的最大32维限制,因此触发该报错。
同时你要实现的是将平铺的像素数组还原为原始图像的三维结构,不需要reshape为pic_n的形状。
修复方案
将最后一行代码替换为以下内容即可解决报错:
# 直接还原为原始图像的(高, 宽, 通道数)形状 fuzzy_img = np.reshape(new_img, pic.shape).astype(np.uint8)
补充注意:skfuzzy的
cmeans接口要求输入数据维度为(特征数, 样本数),你当前传入的pic_n维度是(样本数, 特征数),会导致聚类结果不符合预期,建议同步修改cmeans调用代码:cntr, u, u0, d, jm, p, fpc =fuzz.cluster.cmeans(pic_n.T,2,2,0.005,100)
内容的提问来源于stack exchange,提问作者Uzair
相关产品推荐
相关产品推荐

