def _apply_filters(self, img): ''' ''' if self.color.get(): filt = ImageFilter.UnsharpMask(radius=25, percent=200, threshold=30) img = img.filter(filt) if self.edge.get(): #img = img.convert("LA") #filt = ImageFilter.SHARPEN() #img = img.filter(filt) #enh = ImageEnhance.Brightness(img) #img = enh.enhance(0.25) enh = ImageEnhance.Contrast(img) image = enh.enhance(1.5) #enh = ImageEnhance.Brightness(img) #img = enh.enhance(0.75) filt = ImageFilter.UnsharpMask(radius=50, percent=150, threshold=30) img = img.filter(filt) filt = ImageFilter.EDGE_ENHANCE_MORE() img = img.filter(filt) filt = ImageFilter.CONTOUR() img = img.filter(filt) return img
def applyFilter(imgObj, outpLoc, filterType, customArgs=[0]): """Aplly filter to an image, if arguments arr required use the list customArgs Help from: https://hhsprings.bitbucket.io/docs/programming/examples/python/PIL/ImageFilter.html""" # format the output dir: if it doesnt exist create it if os.path.isdir(outpLoc): pass else: os.makedirs(outpLoc) # check if the imgObj is a thumbnail already if "filtr" in imgObj.fileName: # don't do anything return False # apply filter based on filter type: # open image file im = Image.open(imgObj.fileLOC) # apply filter based on filterType argument if filterType == "BLUR": currImFltr = im.filter(ImageFilter.BoxBlur(customArgs[0])) elif filterType == "CONTOUR": currImFltr = im.filter(ImageFilter.CONTOUR()) elif filterType == "DETAIL": currImFltr = im.filter(ImageFilter.DETAIL()) elif filterType == "EDGE_ENHANCE": currImFltr = im.filter(ImageFilter.EDGE_ENHANCE_MORE()) elif filterType == "EMBOSS": currImFltr = im.filter(ImageFilter.EMBOSS()) elif filterType == "FIND_EDGES": currImFltr = im.filter(ImageFilter.FIND_EDGES()) elif filterType == "UNSHARP_MASK": currImFltr = im.filter( ImageFilter.UnsharpMask(radius=customArgs[0], percent=customArgs[1], threshold=customArgs[2])) else: print(f"no filter for filter type: {filterType}") return False # save filtered image currImFltr.save(outpLoc + "filtr-" + filterType + "-" + imgObj.fileName)
def edge_enhance_plus(image: Image.Image) -> Image.Image: return _apply_filter(image, ImageFilter.EDGE_ENHANCE_MORE())