我想要使用Brad Larson的GPUImage的GPUImageGaussianSelectiveBlurFilter在不同分辨率的圖像上保持相對恆定的模糊大小。GPUImage:在多個圖像大小上規格化GPUImageGaussianSelectiveBlurFilter的模糊大小
假設我有兩張尺寸爲1000x1000和2000x2000的圖像,我希望2000x2000的模糊尺寸與1000x1000尺寸相同。所以我將1000x1000的模糊大小設置爲1.0,將2000x2000的模糊大小設置爲2.0。我想要的模糊通常需要較大圖像上的模糊大小遠高於1.0。
((GPUImageGaussianSelectiveBlurFilter *)self._selectiveFocusFilterSmall).blurSize = 1.0;
((GPUImageGaussianSelectiveBlurFilter *)self._selectiveFocusFilterLarge).blurSize = 2.0;
然後我強制處理大小。如果沒有這個模糊不會被歸一化:
[self._selectiveFocusFilterSmall forceProcessingAtSize:CGSizeMake(1000, 1000)];
[self._selectiveFocusFilterLarge forceProcessingAtSize:CGSizeMake(2000, 2000)];
小:
small http://www.kevinharringtonphoto.com/photos/i-WM76ghx/0/M/i-WM76ghx-M.png
大:
large http://www.kevinharringtonphoto.com/photos/i-qWfcCxm/0/M/i-qWfcCxm-M.png
大零距離:
close http://www.kevinharringtonphoto.com/photos/i-w98SCLn/0/M/i-w98SCLn-M.png
如何在保持模糊大小的同時擺脫較大模糊圖像中的拳擊?我很想知道是否有更好的方法來使用GPUImage在多個圖像上標準化模糊大小。
我認爲你在做什麼應該如何工作(至少如果你是在線性RGB處理)。我就是這麼解決這個問題的。你看到的方便性很奇怪。我會做一些分析,看看從模糊中出來的內核對於大圖像是否真的是高斯的,或者如果其他事情正在發生。您應該能夠通過一個全黑的圖像,並獲取一個白色像素,然後獲取該程序使用的確切內核。這可能是因爲這個軟件包使用了一個大尺寸不太好的近似值,或者有一些錯誤。 – user1118321 2013-05-03 21:06:46
是啊@ user1118321我明白你的意思,請參閱下面Brad的答案。我不確定如何在GPUImage中實現它,但我發現問題在推動模糊大小。和想法? – kev 2013-05-06 22:20:02
另一種可能性是使用Core圖像[CIGaussianBlur](https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html#//apple_ref/doc/filter/而不是ci/CIGaussianBlur)過濾器。我從來沒有使用GPUImage,所以我不知道自己實現可分離的1D內核有多難,但聽起來並不難。你的模糊有多大?如果半徑不會太大,我們不會感到驚訝,如果他們在你的情況下足夠快地運行。 – user1118321 2013-05-07 01:17:20