Exemplo n.º 1
0
 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
Exemplo n.º 2
0
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