2012-10-22 30 views
4

我想知道如何智能使用python或任何相关图像库像ndimageskimage甚至PIL。我能找到的,其实我的锐化图像的方法,但有很大的噪音和像素化的锐化的图像缩放。所以当因为我知道Photoshop我试图获得那种聪明的锐化效果,它通过较少噪音和与python的甜美对比来锐化图像,但是我失败了。如何使用python获得我的图像上的“智能锐化”效果?

注: -
(1)的方法进行了测试: -

>>> # 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),我发现一段代码但它在Perl。我只使用上述方法中的第三与smartsharp完成知道PythonIn here directly (3)以下是锐化图像的2:
原始
Original image http://imageshack.us/a/img600/6640/babyil.jpg
首先............ .................................................. ......第二
1st http://imageshack.us/a/img803/3897/sharp1.png2nd http://imageshack.us/a/img809/2235/sharp2.png
第三我的目标>是这样的效果我想
3rd http://imageshack.us/a/img832/4563/smartsharp.jpg
(4)以下是我用于创建第三图像的工具以上:
smrsharpm http://imageshack.us/a/img210/2747/smartsharpentoolm.jpgsmrsharp http://imageshack.us/a/img193/490/smartsharpentool.jpg

回答

4

不幸的是,这是很难知道什么是“智能锐化”确实无需访问Photoshop的代码。在此期间,您可以尝试混合非遮挡蒙版,总变化滤镜和一些颜色调整(可能是色调提升)。

另见:http://www.kenrockwell.com/tech/photoshop/sharpening.htm#

更新:这里是如何从图像中去除运动模糊的示例:

https://github.com/stefanv/scikit-image-demos/blob/master/clock_deblur.py

(时钟图像是在相同的存储库)。不幸的是,scikit-image目前还没有成熟的去模糊/逆滤波 - 但我们正在努力!

+0

但是好消息是,任何人都知道'Perl'可以将我附在我的文章中的代码修改为我可爱的'Python'。顺便谢谢scikit-image项目。 –

+0

只有一种享受!我无法访问上面的Perl代码 - 你会介意检查链接吗? –

+0

我试图从'scikit-image'使用'Wiener-filter',但它引发了一个错误**冲动响应必须是一个可调用的**(i。e我不知道如何使用Impulse响应参数来执行wiener -filter)。我坚持这个地方。你以前的文章是美好的,但代码是在'MatLab',我试图找出什么** fspecial()**功能,但我失败了。看来你可以帮助。你可以更新你的答案说明如何使用'skimage.filter.wiener()'做智能锐化。感谢你的耐心。 –

4

Photoshop的“智能锐化”功能在内部使用称为解卷积的数学运算。 numpy确实有一个deconvolve()函数可能会被用于执行此任务,但是我找不到现成的函数来专门针对numpy进行智能锐化,因此您可能必须自己对其进行编码。

另一种方法是使用GIMP。有一个GIMP插件(直观地命名为“G'Mic”),可以在其他锐化算法之间进行解卷积,并且可以使用Python自动化GIMP。

+0

谢谢,先生,我会谷歌你提供的信息。 –

+1

我们使用scikit-image实现标准Wiener滤波器,因此您可以生成高斯核函数并应用其逆(此过程称为解卷积)。另请参阅:http://yuzhikov.com/articles/BlurredImagesRestoration1.htm 还有盲反卷积,它试图估计最佳deblur内核,但是这个过程可能非常敏感。 –

+0

@StefanvanderWalt我转贴了links.Now我要去尝试Wiener-filter希望它对我有用,因为我更喜欢通过scikit-image来完成任务,或者可能是ndimage.Thanks –