Brain Tumor Detection-CV project[1]

Data preprocessing

                原始数据集中的图像通常大小不同,因此有时我们需要调整大小和归一化(z-score 常用于 MRI 图像的预处理)来让它们可以被CNN学习。

1. numpy储存npy转化后图片的格式问题:        

  • 通过np.load读取后的npy格式的图片,在numpy数组中以n个数组的形式储存在一个array中,每个数组有m个元素,代表此图的大小为m列n行像素。
  • plt.imshow()其实就是将数组的值以图片的形式展示出来,数组的值对应着不同的颜色深浅,而数值的横纵坐标就是数组的索引。也就是说,numpy中储存的数字是灰度,也可以理解为亮度,即颜色的深浅。而imshow里的cmap就是一个调色盘,或者理解成配色方案,imshow根据该配色方案,参考numpy的灰度数值来生成图像。例如:04b55d8adff54a0ea83563136ca07f0a.png

         其运行结果为:

ba97e26cfcab456c9b60ca15c28f8889.png

 (本数据集中灰度应该采用的是浮点算法:Gray=R*0.3+G*0.59+B*0.11)

2. 图层问题

  • 原图里面,img.npy是有BGR三通道储存的,也就是代表他是一个 [240x240x3]的大数组,后面那个3就是B层G层和R层。而那个seg文件,就是记录肿瘤的图层只有B层一个层,就是一个[240x240x1]的数组。所以在显示肿瘤的时候后面不用加这个0,显示原图的时候就要加0,因为只有0才能和肿瘤的图层搭配,如果选1或者2就看不出肿瘤了。P1是显示肿瘤,P2是显示原图
  • 81bdec03a4a24d3fb187c66aecc4fa05.jpeg
  • a0c2a783b3bc44e385148f4d62c8dcfb.jpeg

TIPs:

  • SEG图层的像素值要转换成0与1(255 改为 1),使得模型进行2分类
  • imgh图层的像素值数据类型要转化为torch.long
  • Tensor是一种张量类型,模型的训练需要突破以此类型输入

猜你喜欢

转载自blog.csdn.net/m0_59056870/article/details/126084306