def performOcrForDataBox(self, data_box, engine): if engine.hasLanguages(): engine.setLanguage(data_box.getLanguage()) pixbuf_width = self.image_pixbuf.get_width() pixbuf_height = self.image_pixbuf.get_height() new_pixbuf_width = min(data_box.getWidth(), pixbuf_width) new_pixbuf_height = min(data_box.getHeight(), pixbuf_height) subpixbuf = self.image_pixbuf.new_subpixbuf(data_box.getX(), data_box.getY(), new_pixbuf_width, new_pixbuf_height) subpixbuf.x = data_box.getX() subpixbuf.y = data_box.getY() subpixbuf.width = pixbuf_width image = graphics.convertPixbufToImage(subpixbuf) layout_analysis = LayoutAnalysis(engine, clean_text = self.configuration_manager.clean_text) text = layout_analysis.readImage(image) data_box.setText(text) self.main_window.copy_to_clipboard_menu.set_sensitive(True) self.main_window.spellchecker_menu.set_sensitive(True) debug('Finished reading') text_size = layout_analysis.getTextSizeFromImage(image, self.page.resolution[1]) if text_size: data_box.setFontSize(text_size)
def performOcrForDataBox(self, data_box, engine): if engine.hasLanguages(): engine.setLanguage(data_box.getLanguage()) pixbuf_width = self.image_pixbuf.get_width() pixbuf_height = self.image_pixbuf.get_height() new_pixbuf_width = min(data_box.getWidth(), pixbuf_width) new_pixbuf_height = min(data_box.getHeight(), pixbuf_height) subpixbuf = self.image_pixbuf.new_subpixbuf(data_box.getX(), data_box.getY(), new_pixbuf_width, new_pixbuf_height) subpixbuf.x = data_box.getX() subpixbuf.y = data_box.getY() subpixbuf.width = pixbuf_width image = graphics.convertPixbufToImage(subpixbuf) layout_analysis = LayoutAnalysis( engine, clean_text=self.configuration_manager.clean_text) text = layout_analysis.readImage(image) data_box.setText(text) self.main_window.copy_to_clipboard_menu.set_sensitive(True) self.main_window.spellchecker_menu.set_sensitive(True) debug('Finished reading') text_size = layout_analysis.getTextSizeFromImage( image, self.page.resolution[1]) if text_size: data_box.setFontSize(text_size)
def performOcr(self, engine_name = None): selected_engine_index = self.box_editor.getSelectedOcrEngine() if engine_name: for i in xrange(len(self.ocr_engines)): if self.ocr_engines[i][0].name == engine_name: selected_engine_index = i break self.box_editor.selectOcrEngine(selected_engine_index) image = graphics.convertPixbufToImage(self.box_editor.getImage()) angle = self.box_editor.getAngle() if angle: image = graphics.getImageRotated(image, angle) engine = None if selected_engine_index != -1: engine = self.ocr_engines[selected_engine_index][0] self.reviewer.performOcrForDataBox(self.data_box, engine) self.updateDataBox(self.data_box)
def performOcr(self, engine_name=None): selected_engine_index = self.box_editor.getSelectedOcrEngine() if engine_name: for i in xrange(len(self.ocr_engines)): if self.ocr_engines[i][0].name == engine_name: selected_engine_index = i break self.box_editor.selectOcrEngine(selected_engine_index) image = graphics.convertPixbufToImage(self.box_editor.getImage()) angle = self.box_editor.getAngle() if angle: image = graphics.getImageRotated(image, angle) engine = None if selected_engine_index != -1: engine = self.ocr_engines[selected_engine_index][0] self.reviewer.performOcrForDataBox(self.data_box, engine) self.updateDataBox(self.data_box)
def setImage(self, pixbuf): self.image = graphics.convertPixbufToImage(pixbuf) self.emit("changed_image", pixbuf)
def __pressedAngleDetectionButton(self, widget): image = graphics.convertPixbufToImage(self.box_editor.getImage()) angle = graphics.getHorizontalAngleForText(image) debug('ANGLE: ', angle) self.box_editor.setAngle(angle)
def setImage(self, pixbuf): self.image = graphics.convertPixbufToImage(pixbuf) self.emit('changed_image', pixbuf)