2010-10-28 51 views
4

所以說我有一個圖像,我想「像素化」。我想要這個由100×100方格表示的清晰圖像。所以如果原始照片是500像素X 500像素,每個正方形是5像素X 5像素。所以每個正方形都會有一個顏色對應於它交換的5 px X 5 px像素組...幫助理論背後的pixelate算法?

我該如何弄清楚這個顏色最能代表它所覆蓋的東西是?我是否只需爲25個像素中的每一個取R G和B數字並對其進行平均?還是有其他一些我應該知道的模糊方式? 「像素化」功能通常使用什麼,比如說在Photoshop中?

回答

10

如果你想了解的像素化的「理論」,對重採樣(尤其是下采樣)讀了。像素化的算法簡單的下采樣的圖像(使用一些下采樣方法),然後使用nearest-neighbour interpolation上採樣它。請注意,在代碼中,這兩個步驟可以合併爲一個。

對於下采樣在一般情況下,通過的Ñ圖像的因子下采樣首先由適當的低通濾波器濾波,然後一個樣本每Ñ的取。 「理想的」過濾器使用的是sinc filter,但由於與實施它的問題,該Lanczos filter經常被用來作爲一個緊密的替代方案。

然而,對於幾乎所有目的時做馬賽克,使用簡單box blur應該可以正常工作,並且很容易實現。這只是附近像素的平均值。

如果您不需要改變圖像的輸出尺寸,那麼這意味着你把它們ķ × ķ像素的圖像成塊(大產生的像素),然後全部更換每個塊中的像素與該塊中像素的平均值。

1

當源和目標網格是如此整除和排列,最algorigthms給出了類似的結果。如果網格是固定的,那麼選擇簡單的平均值。

在其他情況下

,尤其是一個很小的比例調整時,質量差異是非常明顯的。考慮到目標像素區域中包含了多少像素值,對簡單平均值的最簡單增強是對每個像素值進行加權。

更多的算法,檢查multivariate interpolation