def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui._selectImage.clicked.connect(self.select_image) self.ui._selectImage_2.clicked.connect(self.save_image) self.ui._removeBGNoise.clicked.connect(self.remove_bg_noise) # self.ui._removeMargins.clicked.connect(self.remove_margins) self.ui._removePunchholes.clicked.connect(self.remove_punchholes) self.ui._clean.clicked.connect(self.clean_image) self.default_path = 'C:\\Users\\Ahmad Sonoury\\Desktop\\Usama\'s\\Machine Learning\\FYP\\Workspace\\images' self.original_image = None self.filtered_image = None self.image_path = None
class MyForm(QMainWindow): def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui._selectImage.clicked.connect(self.select_image) self.ui._selectImage_2.clicked.connect(self.save_image) self.ui._removeBGNoise.clicked.connect(self.remove_bg_noise) # self.ui._removeMargins.clicked.connect(self.remove_margins) self.ui._removePunchholes.clicked.connect(self.remove_punchholes) self.ui._clean.clicked.connect(self.clean_image) self.default_path = 'C:\\Users\\Ahmad Sonoury\\Desktop\\Usama\'s\\Machine Learning\\FYP\\Workspace\\images' self.original_image = None self.filtered_image = None self.image_path = None def select_image(self): fname = QFileDialog.getOpenFileName(self, 'Select Image', self.default_path, "Image Files (*.jpg)") if fname[0]: self.image_path = fname[0] self.ui._imagePathDispay.setText(fname[0]) self.original_image = Image.open(fname[0]) self.ui._imageView.setScaledContents(True) self.ui._imageView.setPixmap(pil_to_pixmap(self.original_image)) def save_image(self): if self.filtered_image is None: return fileName = QFileDialog.getSaveFileName(self, "Save Image", self.default_path+"\\untitled.jpg", "Images (*.jpg)") self.filtered_image.save(fileName[0]) def remove_bg_noise(self): if self.image_path is None: return filtered_image = Image.open(self.image_path).convert("L") removebgnoise(filtered_image, 68, 9, 9) filtered_image = filtered_image.convert("RGB") self.ui._filteredImageView.setScaledContents(True) self.ui._filteredImageView.setPixmap(pil_to_pixmap(filtered_image)) self.filtered_image = filtered_image def remove_margins(self): if self.image_path is None: return filtered_image = Image.open(self.image_path).convert('L') pix = filtered_image.load() sum = 0 for i in range(filtered_image.size[0]): for j in range(filtered_image.size[1]): sum += pix[i, j] avg = sum / (filtered_image.size[0] * filtered_image.size[1]) removemargins(filtered_image, 20, avg + 50, avg, avg) filtered_image = filtered_image.convert("RGB") self.ui._filteredImageView.setScaledContents(True) self.ui._filteredImageView.setPixmap(pil_to_pixmap(filtered_image)) self.filtered_image = filtered_image def remove_punchholes(self): if self.image_path is None: return filtered_image = Image.open(self.image_path).convert('L') pix = filtered_image.load() sum = 0 for i in range(filtered_image.size[0]): for j in range(filtered_image.size[1]): sum += pix[i, j] avg = sum / (filtered_image.size[0] * filtered_image.size[1]) removepunchholes(filtered_image, 30, 5, 90, avg, 20) filtered_image = filtered_image.convert("RGB") self.ui._filteredImageView.setScaledContents(True) self.ui._filteredImageView.setPixmap(pil_to_pixmap(filtered_image)) self.filtered_image = filtered_image def clean_image(self): if self.image_path is None: return filtered_image = Image.open(self.image_path).convert('L') removebgnoise(filtered_image, 68, 9, 9) pix = filtered_image.load() sum = 0 for i in range(filtered_image.size[0]): for j in range(filtered_image.size[1]): sum += pix[i, j] avg = sum / (filtered_image.size[0] * filtered_image.size[1]) removepunchholes(filtered_image, 30, 9, 90, avg, 20) removemargins(filtered_image, 35, avg + 50, avg, avg) filtered_image = filtered_image.convert("RGB") self.ui._filteredImageView.setScaledContents(True) self.ui._filteredImageView.setPixmap(pil_to_pixmap(filtered_image)) self.filtered_image = filtered_image