<h2>它不是RGB像素阵列,更好的方法是转换成灰度图像</h2>
<p>获取CT图像的方法是在CT-dicom文件中获取像素阵列的属性。
CT-dicom文件像素数组中的元素类型都是uint16,但是python中的很多工具,比如OpenCV,一些人工智能的东西,都不能与之兼容。在</p>
<p>从CT-dicom文件中获取pixel_array(CT Image)后,需要将pixel_数组转换成灰度图像,这样<strong>您就可以通过python中的大量图像处理工具对该灰度图像进行处理。在</p>
<p><em>下面的代码是一个将pixel_数组转换为灰色图像的工作示例。</em></p>
<pre><code>import matplotlib.pyplot as plt
import os
import pydicom
import numpy as np
# Abvoe code is to import dependent libraries of this code
# Read some CT dicom file here by pydicom library
ct_filepath = r"<YOUR_CT_DICOM_FILEPATH>"
ct_dicom = pydicom.read_file(ct_filepath)
img = ct_dicom.pixel_array
# Now, img is pixel_array. it is input of our demo code
# Convert pixel_array (img) to -> gray image (img_2d_scaled)
## Step 1. Convert to float to avoid overflow or underflow losses.
img_2d = img.astype(float)
## Step 2. Rescaling grey scale between 0-255
img_2d_scaled = (np.maximum(img_2d,0) / img_2d.max()) * 255.0
## Step 3. Convert to uint
img_2d_scaled = np.uint8(img_2d_scaled)
# Show information of input and output in above code
## (1) Show information of original CT image
print(img.dtype)
print(img.shape)
print(img)
## (2) Show information of gray image of it
print(img_2d_scaled.dtype)
print(img_2d_scaled.shape)
print(img_2d_scaled)
## (3) Show the scaled gray image by matplotlib
plt.imshow(img_2d_scaled, cmap='gray', vmin=0, vmax=255)
plt.show()
</code></pre>
<p>下面是我打印出来的结果。在</p>
<p><a href="https://i.stack.imgur.com/urQBu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/urQBu.png" alt="enter image description here"/></a></p>