That sounds like a good idea, will try that, Thanks!
But yeah, that did not work out... Still some strange errors.
This is my code, as you can see i have some other functions but they work just fine, only sharpen is giving me some errors.
def sharpen(image):
kernel = np.array([
[0, -1, 0],
[-1, 5, -1],
[0, -1, 0],
])
padding = kernel.shape[0] // 2
outputImage = np.zeros_like(image)
if (image.ndim == 2):
paddedImage = np.zeros((image.shape[0] + (padding * 2), image.shape[1] + (padding * 2)))
paddedImage[padding:-padding, padding:-padding] = image
for i in range(image.shape[0]):
for j in range(image.shape[1]):
outputImage[i,j]=(kernel*paddedImage[i:i+kernel.shape[0], j:j+kernel.shape[0]]).sum()
elif(image.ndim == 3):
paddedImageR = np.zeros((image.shape[0] + (padding * 2), image.shape[1] + (padding * 2)))
paddedImageG = np.zeros((image.shape[0] + (padding * 2), image.shape[1] + (padding * 2)))
paddedImageB = np.zeros((image.shape[0] + (padding * 2), image.shape[1] + (padding * 2)))
paddedImageR[padding:-padding, padding:-padding] = image[:,:,0]
paddedImageG[padding:-padding, padding:-padding] = image[:,:,1]
paddedImageB[padding:-padding, padding:-padding] = image[:,:,2]
for i in range(image.shape[0]):
for j in range(image.shape[1]):
outputImage[i,j,0]=(kernel*paddedImageR[i:i+kernel.shape[0], j:j+kernel.shape[0]]).sum()
outputImage[i,j,1]=(kernel*paddedImageG[i:i+kernel.shape[0], j:j+kernel.shape[0]]).sum()
outputImage[i,j,2]=(kernel*paddedImageB[i:i+kernel.shape[0], j:j+kernel.shape[0]]).sum()
return outputImage
args = sys.argv[1:]
args = ["--sharpen", "LennaBnW.png", "LennaSharpen.png"]
inputFilePath = args[-2]
outputFilePath = args[-1]
image1 = Image.open(inputFilePath)
imgArray = np.asarray(image1, dtype = np.uint8);
for arg in args:
if (arg == "--rotate"):
imgArray = rotate(imgArray)
if (arg == "--mirror"):
imgArray = mirror(imgArray)
if (arg == "--inverse"):
imgArray = inverse(imgArray)
if (arg == "--bw"):
imgArray = bw(imgArray)
if (arg == "--lighten"):
index = args.index("--lighten")
imgArray = lighten(imgArray, int(args[index + 1]))
if (arg == "--darken"):
index = args.index("--darken")
imgArray = darken(imgArray, int(args[index + 1]))
if (arg == "--sharpen"):
imgArray = sharpen(imgArray)
imgArray = (255/np.max(imgArray)) * imgArray
np.clip(imgArray, 0, 255)
if (imgArray.ndim == 3):
image = Image.fromarray(imgArray.astype(np.uint8), 'RGB')
elif (imgArray.ndim == 2):
image = Image.fromarray(imgArray.astype(np.uint8), 'L')
image.save(outputFilePath)
So if you can find error in that i would be really glad.