以下是CBIS-DDSM 在pre-processing时遇到的问题。
想必有处理过此资料集的人都知道, 要经过一道步骤叫做CC和MLO部分的“removal pectoral muscle”
, 但我在处理的过程中一直遇到一个bug, 直接上图:
下图为edge canny 的code
channel_axis
, got (354, 179, 4) 如圖channel_axis
, got (4156, 2026)"補充: 網路上很多轉換的方法我都試過了(rgb2gray)等等,還是一直有通道的error出現。非常困擾之
根据你描述的问题,如果直接从错误信息的提示来看,是在skimg下的一个地方的代码抛出来的一个异常,意思是说输入的数组必须要有3个channel axis 但是代码中没有。因为这是这个包内部的代码,不是你写的代码,所以不存在说你写的代码有问题的说法,因此引起这个问题的原因可能有这两个:
一个是数据源的问题,你的数据源跟其它博主的不一样,数据中某处数据格式有问题或者不符合这个包下面所要求的格式。
还有一个可能是库和工具的版本问题。
因此,解决方法就是核对下版本的问题自己对照下数据源。
检查一下数据预处理啊,你的图片是4通道的,但是你的这里是三通道转灰度图报错。
这个函数要求的图片通道数应该是3,确认下你的第4通道数据有无用(有些数据集为了方便会将mask数据存在第四通道),还是说你的第4通道是标注文件的mask图像。如果是标注的话,直接通道分离一下,第四通道是lables,其他前面三个通道就是图片输入。
如果不是的话,直接使用color.rgba2rgb()转一下将4通道变成三通道的数据,然后color.rgb2gray()再转为gray;或者直接在io.imread("xxx.png",as_gray=True)加上标志位直接读取灰度图即可