2012-10-19 54 views
2

喜IM圖像模糊努力實現諸如圖像邊界上的圖像有一定的影響的一些顏色不同 現在即時通訊試圖讓這樣如何使機器人

enter image description here

的中心部分模糊圖像圖像清晰可見,另一部分是模糊

聽到的是鏈接巫婆我指 http://www.jhlabs.com/ip/filters/VariableBlurFilter.html

但這一形象的不同(THI在java中的lib,所以我把BufferdImage轉換爲位圖,但現在它已經不存在了)任何人都可以在這裏幫助我..

+0

你想模糊圖像中的哪個部分?你是否希望它像一個單一的清晰區域(像一個圓圈)然後在其外面模糊的示例圖片? – Bill

+0

是的,正是我想要的.. – Infoware

回答

3

對不起,對於最近的回覆。我忘了檢查本週末的stackoverflow。

不管怎麼說,我認爲你應該做的是這樣的(它被簡化爲灰度,但應該很容易作出的RGB工作):

oim = original image 
xc, yc = center point 
d = distance from center point for in-focus 
fval = zeros, matrix size of oim 
max_blur = maximum blur radius 
for all pixels (xp,yp) in oim 
    dist = sqrt((xp-xc)^2+(yp-yc)^2) 
    dist = dist-d // we only care about the area beyond the clear area 
    if dist>0 
     blur = dist 
    end 
    if blur>max_blur 
     blur = max_blur // this can also be scaled or whatever works for your needs 
    end 
    blur = round(blur) 
    fval(xp,yp) = blur 
end 
nim = oim 
for b=1:max_blur 
    blurred = blur_function(oim,b) 
    for all pixels (xp,yp) in fval 
     if fval(xp,yp) == b 
      nim(xp,yp) = blurred(xp,yp) 
     end 
    end 
end 

NIM現在是新的圖像

所以基本上這裏發生的事情是,我們首先製作一個查詢表,告訴我們模糊一個給定的像素有多少。焦點值是每個像素距清晰區域的距離的函數。這是矩陣fval。然後,我們多次模糊圖像,每次使用來自模糊圖像的新像素數據來更新新圖像,並且如果我們正在更新該散焦等級,則僅更新給定像素。

的blur_function可以是任何東西。當我自己測試這個時,我在MatLab中使用了平均模糊。

希望這會有所幫助!

+0

感謝您的回覆,但我新的和在我的水平,這對我來說很難(我很抱歉地說)你已經完成(找到)任何示例。再次感謝。 – Youddh

+0

@Youddh 恐怕我沒有任何其他的例子。正如我所說,我自己開發了這個版本。所以你所看到的幾乎是我所擁有的(我也可能有MATLAB代碼,但它幾乎是一樣的)。 什麼部分給你帶來麻煩?我真的只能在這個算法本身上提供建議,而不是在Android圖像處理上。 – Bill