pyqt 5ノート——QLableはcv 2の読み取ったピクチャーを表示します
pyqt 5のプログラミングを行う場合、QLableで画像を表示する必要があります.QLableはQpixmapで読み取った画像を直接表示することができますが、numpyモジュールで読み取った画像を表示する場合、次のような変換が必要です.
def load_image(self,resize_height, resize_width,normalization=False):
'''
, uint8,[0,255]
:param resize_height:
:param resize_width:
:param normalization: [0.,1.0]
:return:
'''
bgr_image = cv2.imread(self.path)
if len(bgr_image.shape) == 2: #
print("Warning:gray image", self.path)
bgr_image = cv2.cvtColor(bgr_image, cv2.COLOR_GRAY2BGR)
self.rgb_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2RGB) # BGR RGB
# show_image(filename,rgb_image)
# rgb_image=Image.open(filename)
if resize_height > 0 and resize_width > 0:
self.rgb_image = cv2.resize(self.rgb_image, (resize_width, resize_height))
self.rgb_image = np.asanyarray(self.rgb_image)
if normalization:
# :rgb_image=rgb_image/255
self.rgb_image = self.rgb_image / 255.0
# show_image("src resize image",image)
return self.rgb_image
#
def show_image(self):
index = self.image_list.currentRow()
# rgb
rgb_image = self.images[index].load_image(self.pannel_height, self.pannel_width)
label_image = QImage(rgb_image.data, rgb_image.shape[1], rgb_image.shape[0], QImage.Format_RGB888)# QImage
self.image_pannel.setPixmap(QPixmap(label_image))#