Exemple #1
0
 def show_mutil_images_on_widget2(self):
     if self.text_line_imgs is None:
         self.scroll.setWidget(QWidget())
     else:
         main_widget = QWidget()
         main_layout = QVBoxLayout()
         # 生成需要展示的图像并更新行的位置
         rows, cols = self.processing_img.shape
         new_line_postion = []
         img = np.ones((self.text_line_margin, cols))
         row_count = img.shape[0]
         for i, line_img in enumerate(self.text_line_imgs):
             line_img_rows, line_img_cols = line_img.shape
             line_img_tmp = np.ones((line_img_rows, cols))
             line_img_tmp[:line_img_rows, :line_img_cols] = line_img
             img = np.vstack([
                 img, line_img_tmp,
                 np.ones((self.text_line_margin, cols))
             ])
             self.text_line_imgs[i] = line_img_tmp
             new_line_postion.append(
                 (row_count, row_count + line_img_rows, 0, cols))
             row_count += line_img.shape[0] + self.text_line_margin
         rows = img.shape[0]
         figsize = cols / RISZIE_RATIO * 2, rows / RISZIE_RATIO * 2
         fig = plt.figure(figsize=figsize)
         # print(figsize)
         self.ax = fig.add_axes(self.axe_size)
         self.ax.spines['left'].set_color('none')
         self.ax.spines['right'].set_color('none')
         self.ax.spines['bottom'].set_color('none')
         self.ax.spines['top'].set_color('none')
         self.ax.set_xticks([])
         self.ax.set_yticks([])
         self.ax.imshow(img, cmap='gray')
         rec_list = []
         for i, line_position in enumerate(new_line_postion):
             min_row, max_row, min_col, max_col = line_position
             rec = Rectangle((min_col, min_row),
                             max_col - min_col,
                             max_row - min_row,
                             fill=False,
                             ec="red",
                             picker=True)
             rec_list.append(rec)
             rec.line_index = i
         for p in rec_list:
             self.ax.add_patch(p)
         self.canvas = FigureCanvas(fig)
         self.canvas.draw()
         self.canvas.mpl_connect('pick_event', self.on_line_pick)
         self.processing_img = img
         self.text_line_position_array = new_line_postion
         self.selected_text_line_index_list = []
         main_layout.addWidget(self.canvas)
         main_widget.setLayout(main_layout)
         self.scroll.setWidget(main_widget)