PyQt5使用Label和graphicsView都可以显示图片,但是在显示DICOM图片时会出现问题,显示出来一堆乱码。DICOM图像读取pixel_array之后是一个多维的数组,
我试过
img=self.img_array[index]
x,y=img.shape
frame = QImage(img, y, x,QImage.Format_RGB888)
pix = QPixmap.fromImage(frame)
self.label.setPixmap (pix)
self.label.setScaledContents (True)
和
frame = QImage(img, x, y,QImage.Format_RGB888)
pix = QPixmap.fromImage(frame)
item = QGraphicsPixmapItem(pix)
scene = QGraphicsScene()
scene.addItem(item)
self.graphicsView.setScene(scene)
都无法正常显示!!!
后来我借鉴了github上的DICOMViewer的GUI,需要装一个叫qimage2ndarray的库,代码如下:
image=self.img_array[index] #读出一层图像,为np.ndarray形式
image=cv2.resize(image,(280,280), interpolation = cv2.INTER_CUBIC)#resize成窗口的大小
image=qimage2ndarray.array2qimage(image)
self.label.setPixmap (QPixmap.fromImage(image))
图像可以正常显示!