I am wondering how to smart sharpen an image using python
or any related image library like ndimage
,skimage
or even PIL
.I could find methods that actually sharpen my image but with a lot of noise and pixelating when zooming in .So since I know Photoshop
I tried to get that smart sharpen effect which sharpens the image with a less noising and with a nice sweet contrast through python but I failed.
Notes:-
(1) methods has been tested:-
>>> # The 1st Method:
>>> import Image
>>> import ImageFilter
>>> image.filter(ImageFilter.SHARPEN)
>>> Image.filter(ImageFilter.EDGE_ENHANCE_MORE) #Look down:1st image created
>>> # The 2nd Method:
>>> blurred_l=scipy.ndimage.gaussian_filter(b,3)
>>> filter_blurred_l = scipy.ndimage.gaussian_filter(blurred_l, 1)
>>> alpha =30
>>> sharpened = blurred_l + alpha * (blurred_l - filter_blurred_l)
>>> # The 3rd Method:
>>> shar=imfilter(Image,'sharpen') #Look down:2nd image created
(2) I found a piece of code but it's in Perl
. I only know Python
In here or directly
(3) Here are 2 of the sharpened image using above methods the third done with smartsharp:
Original
Original image http://imageshack.us/a/img600/6640/babyil.jpg
First ....................................................................second
1st http://imageshack.us/a/img803/3897/sharp1.png 2nd http://imageshack.us/a/img809/2235/sharp2.png
third MY GOAL>that's the effect I want
3rd http://imageshack.us/a/img832/4563/smartsharp.jpg
(4) Here are the tool I used to create the third image above:
smrsharpm http://imageshack.us/a/img210/2747/smartsharpentoolm.jpg smrsharp http://imageshack.us/a/img193/490/smartsharpentool.jpg
Photoshop's "smart sharpening" function uses a mathematical operation called deconvolution internally. numpy
does have a deconvolve()
function that could probably be pressed into service for this task, but I couldn't find a ready-made function to do smart sharpening specifically with numpy
, so you'd probably have to code it up yourself.
An alternative approach would be to do it using the GIMP. There's a GIMP plug-in (intuitively named "G'Mic") that will do deconvolution among other sharpening algorithms, and you can automate GIMP using Python.
Unfortunately, it's hard to know what "Smart sharpen" does without having access to the Photoshop code. In the meantime, you can try to mix an unsharpen mask, total variation filtering and some color adjustment (perhaps a bit of hue boost).
Also see: http://www.kenrockwell.com/tech/photoshop/sharpening.htm#
Update: here is an example of how to remove motion blur from an image:
https://github.com/stefanv/scikit-image-demos/blob/master/clock_deblur.py
(the clock image is in the same repository). Unfortunately, scikit-image does not currently have mature deblurring / inverse filtering--but we're working on it!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With