2010-08-31 22 views
4

我有應用了反混淆的行和文本的位圖。我想開發一個過濾器來消除抗混疊效應。我正在尋找關於如何去做這件事的想法,所以要開始我需要了解反別名算法的工作原理。有沒有好的鏈接,甚至有代碼?過濾器來反轉抗混疊效果

+0

我想你會想做邊緣檢測和某種形式的邊緣增強。也許就像一個浮雕 – 2010-08-31 06:23:19

+0

是的,我正在研究邊緣檢測例程,但它在線條或文本靠得很近的某些區域失敗,並且反鋸齒會導致一些模糊。我的邊緣檢測必須保持獨立的形狀,所以我需要某種過濾器來識別消除鋸齒的像素,並在邊緣檢測發生之前將它們移除 – Jeremy 2010-08-31 06:27:16

+1

http://stackoverflow.com/questions/903632/sharpen-on-a- bitmap-using-c – digEmAll 2010-08-31 06:39:51

回答

5

我需要了解抗鋸齒算法,如何通過以更高的分辨率呈現圖像的工作

抗鋸齒的作品之前,它是下采樣,以輸出分辨率。在下采樣過程中,較高分辨率的像素被平均以產生較低分辨率的像素。這將在渲染圖像中創建更平滑的顏色更改。

考慮這個非常簡單的例子,其中塊輪廓在白色背景上呈現。

High resolution image

它然後在這個過程中產生具有灰色陰影的像素下采樣成一半的分辨率:

Low resolution image

在這裏被用於抗混疊的一個更爲現實的示範使字母S:

Not anti-aliased Anti-aliased

+0

如果我記得我在大學的CG&V課程,那麼稱爲超級抽樣?非常好的答案。 – 2010-08-31 17:04:20

3

我對C#編程並不熟悉,但是我對圖形有一定的瞭解。最接近反抗別名過濾器的是一個銳化過濾器(至少在實踐中,使用Photoshop),通常應用多次,具體取決於所需的效果。當抗鋸齒元件和背景之間已經有很大的對比度時,銳化濾波器的效果最好,如果背景是單色,而不是複雜的圖形,則更好。

如果您有權訪問任何高級圖形編輯器,您可以嘗試一些測試,如果您對結果滿意,可以開始研究銳化過濾器。此外,如果您使用灰度位圖,更好的解決方案是將其轉換爲黑白圖像 - 這將消除對其的任何消除鋸齒效果。

希望這有助於至少一點:)

+0

謝謝。我會看看銳化過濾器。我曾嘗試轉換爲灰度並使用黑色/白色濾鏡,但通常情況下,濾鏡所呈現的形狀應該是白色,而且我無法想出適用於所有情況的良好閾值。銳化過濾器可能更加智能,所以我會調查該選項。 – Jeremy 2010-08-31 06:48:16

+1

很高興能有所幫助。我不會放棄B/W轉換,因爲如果你能夠擁有B/W位圖,這種方法將是你最好的選擇。轉換爲灰度後,嘗試降低亮度,同時增加對比度。在轉換爲黑白之前,這將有助於「清潔」圖像並更好地定義區域。 – 2010-08-31 07:02:09

+0

有趣。我必須弄清楚如何計算和處理亮度。好的提示,謝謝。 – Jeremy 2010-08-31 22:28:23