png - 如何使用 pydicom.read_file() 和 cv2.imread() 一次读取多个 DICOM 和 PNG 文件?
问题描述
目前正在研究用于 MR 图像中肾脏分割的完全 CNN。有 40 张图像及其地面实况标签,尝试加载所有图像以进行预处理。
使用安装了最新版本的 pydicom 和 pip 的 Google Colab 进行此项目。目前已将 Google Drive 安装到 Colab 程序,下面的代码分别显示了 pydicom.read_file() 和 cv2.imread() 调用中图像及其掩码的正确路径。
但是,当我使用“/../IMG*.dcm”或“/../IMG*.png”文件路径(应该是合法的?)时,我会收到如下所列的“FileNotFoundError”。但是,当我指定特定的 .dcm 或 .png 图像时, pydicom.read_file() 和 cv2.imread() 调用函数非常正常。
有关如何解决此问题的任何建议?我在加载数据和预处理方面遇到了很多困难,但是一旦克服了这些初步障碍,就可以准备好模型架构。
#import data as data
import pydicom
import numpy as np
images= pydicom.read_file("/content/drive/My Drive/CHOAS_Kidney_Labels/Training_Images/T1DUAL/IMG*.dcm");
numpyArray = images.pixel_array
masks= cv2.imread("/content/drive/My Drive/CHOAS_Kidney_Labels/Ground_Truth_Training/T1DUAL/IMG*.png");
-----> FileNotFoundError:[Errno 2] 没有这样的文件或目录:'/content/drive/My Drive/CHOAS_Kidney_Labels/Training_Images/T1DUAL/IMG*.dcm'
解决方案
pydicom.read_file
不支持通配符。您必须自己遍历文件,例如(未经测试):
import glob
import pydicom
pixel_data = []
paths = glob.glob("/content/drive/My Drive/CHOAS_Kidney_Labels/Training_Images/T1DUAL/IMG*.dcm")
for path in paths:
dataset = pydicom.dcmread(path)
pixel_data.append(dataset.pixel_array)
推荐阅读
- algorithm - 将一组点与水平对齐的折线连接起来,但不相交
- c - 文本文件中的附加项目,不会排序,但文本文件中的原始数据已排序
- python - 如何在 python 上获取 selenium web 驱动程序以在下一页的 css 选择器上查找元素?
- javascript - 使用 Selenium/Python 循环浏览一系列页面 (WebElement)
- angular - fxLayout 不工作,任何解决此问题的建议
- python - 安装了 Windows 10 virtualenv 和 virtualenvwrapper-win,virtualenv 工作正常,包装器没那么多
- python - Webcrawler:在mac上使用Python3从数组中提取字符串
- mongodb - 为什么 MongoDB 的 find_and_modify() 过滤器参数中的(数组)字段/值对之一被忽略?
- flutter - Flutter - 有没有办法通过应用程序使手机静音?
- java - Apache Spark + Java:ExpressionEncoder 中的“java.lang.AssertionError:断言失败”