How can I get the “smart sharpen” effect on my images with python?

核能气质少年 提交于 2019-12-22 09:16:29

问题


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


回答1:


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.




回答2:


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!



来源:https://stackoverflow.com/questions/13021206/how-can-i-get-the-smart-sharpen-effect-on-my-images-with-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!