pyqt5筆記——QLable顯示cv2讀取的圖片

在做pyqt5編程的時候,需要用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))#設置顯示圖片

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章