使用开放式 CV 在 DICOM 图像上添加叠加层
adding an overlay on a DICOM image using open CV
我正在尝试在 DICOM 图像上创建图层,下面的代码适用于 jpg/png 图像但不适用于 DICOM。
import cv2
import numpy as np
import pydicom as dicom
ds=dicom.dcmread('D0009.dcm')
img=ds.pixel_array
blank = np.zeros(shape=(img.shape[0],img.shape[1],3), dtype=np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(blank,
text='Logo',
org=(img.shape[1]//8, img.shape[0]//2),
fontFace=font,
fontScale= 2,color=(163,163,163),
thickness=11,
lineType=cv2.LINE_4)
blend=cv2.addWeighted(img,0.7,blank,1, 0, dtype = cv2.CV_32F)
cv2.imshow('sample image dicom',blend)
cv2.waitKey()
如有任何帮助,我们将不胜感激
我能够通过规范化 DICOM 图像的值范围并将 DICOM 图像从灰度图像转换为 RGB 图像来实现这一点。替换你的行
img=ds.pixel_array
这些行:
img = np.array(ds.pixel_array, dtype='float32')
img /= np.max(img)
img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
我正在尝试在 DICOM 图像上创建图层,下面的代码适用于 jpg/png 图像但不适用于 DICOM。
import cv2
import numpy as np
import pydicom as dicom
ds=dicom.dcmread('D0009.dcm')
img=ds.pixel_array
blank = np.zeros(shape=(img.shape[0],img.shape[1],3), dtype=np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(blank,
text='Logo',
org=(img.shape[1]//8, img.shape[0]//2),
fontFace=font,
fontScale= 2,color=(163,163,163),
thickness=11,
lineType=cv2.LINE_4)
blend=cv2.addWeighted(img,0.7,blank,1, 0, dtype = cv2.CV_32F)
cv2.imshow('sample image dicom',blend)
cv2.waitKey()
如有任何帮助,我们将不胜感激
我能够通过规范化 DICOM 图像的值范围并将 DICOM 图像从灰度图像转换为 RGB 图像来实现这一点。替换你的行
img=ds.pixel_array
这些行:
img = np.array(ds.pixel_array, dtype='float32')
img /= np.max(img)
img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)