Q: Sharpness slider in Python with PIL I am trying to use a slider with an image to change the sharpness of the image. But I am getting an error. Please help me find the mistake and how to rectify it so that it runs properly. I would also appreciate help with making the sliding scale be 0.1 instead of an integer.
import PIL
from PIL import ImageEnhance    
import cv2
a = 0.1
max_a = 10
trackbar_name2 = 'sharpness'
window_name = 'a'

img49 = PIL.ImageEnhance.Sharpness(img49)

def slider(x):
    ret,img_final = PIL.ImageEnhance.Sharpness(img49)
    img_final.enhance(x).show()

slider(0.1)
cv2.createTrackbar(trackbar_name2, window_name, a, max_a, slider, resolution = 0.1)

cv2.destroyAllWindows()

I am getting the following error:
Traceback (most recent call last):

  Input In [97] in <cell line: 7>
    img49 = PIL.ImageEnhance.Sharpness(img49)

  File ~\anaconda3\lib\site-packages\PIL\ImageEnhance.py:100 in __init__
    self.degenerate = image.filter(ImageFilter.SMOOTH)

AttributeError: 'Sharpness' object has no attribute 'filter'

Thank you.

A: import cv2 as cv2
import PIL

import os

from PIL import ImageEnhance
from PIL import Image

import matplotlib.pyplot as plt
import numpy as np

os.chdir("C:\A\PIL")

img49 = Image.open("Image.jpg")
a = 1
max_a = 10
trackbar_name2 = 'sharpness'
window_name = 'windowname'

enhance = PIL.ImageEnhance.Sharpness(img49)
img_final = np.uint8(img49)

def slider(x):
    img = Image.fromarray(img_final,'RGB')
    img = enhance.enhance(x)
    img = np.uint8(img)
    cv2.imshow(window_name,img)

slider(1)
cv2.createTrackbar(trackbar_name2, window_name, a, max_a, slider)

cv2.destroyAllWindows()

to get fractions, write
img = enhance.enhance(x/10) 

in the def slider function. This is just a workaround. I still don't know how to do it in the proper way such that it works for all numbers.
