數字影像處理 - 放大方法



在本教程中,我們將正式介紹三种放大方法,這些方法在“放大介紹”教程中已介紹。

放大方法

  • 畫素複製或(最近鄰插值)
  • 零階保持法
  • K倍放大

每種方法都有其自身的優點和缺點。我們將首先討論畫素複製。

方法一:畫素複製

介紹

它也稱為最近鄰插值。顧名思義,在這種方法中,我們只需複製相鄰畫素。正如我們在取樣教程中已經討論過的那樣,放大隻不過是增加樣本或畫素的數量。此演算法基於相同的原理。

工作原理

在這種方法中,我們根據已給定的畫素建立新的畫素。此方法中每個畫素按行和列複製n次,即可獲得放大的影像。就這麼簡單。

例如

如果您有一張2行2列的影像,並且想要使用畫素複製將其放大兩倍或2倍,則可以按如下方式進行。

為了更好地理解,影像以矩陣的形式呈現,其中包含影像的畫素值。

1 2
3 4

上圖有2行2列,我們首先按行放大。

按行放大

當我們按行放大時,我們將簡單地將行的畫素複製到其相鄰的新單元格。

操作方法如下。

1 1 2 2
3 3 4 4

如上矩陣所示,每一畫素在行中都複製了兩次。

按列放大

下一步是按列複製每個畫素,我們將簡單地將列畫素複製到其相鄰的新列或在其下方。

操作方法如下。

1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4

新的影像大小

從上面的例子可以看出,2行2列的原始影像在放大後已轉換為4行4列。這意味著新影像的尺寸為

(原始影像行數 * 放大倍數,原始影像列數 * 放大倍數)

優點和缺點

這種放大技術的優點之一是它非常簡單。你只需要複製畫素,不需要其他操作。

這種技術的缺點是影像被放大了,但輸出非常模糊。隨著放大倍數的增加,影像變得越來越模糊。最終將導致完全模糊的影像。

方法二:零階保持法

介紹

零階保持法是另一種放大方法。它也稱為兩倍放大。因為只能放大兩倍。我們將在下面的例子中看到原因。

工作原理

在零階保持法中,我們分別從行中選擇兩個相鄰元素,然後將它們相加並將結果除以二,並將結果放在這兩個元素之間。我們首先按行執行此操作,然後按列執行此操作。

例如

讓我們以一個尺寸為2行2列的影像為例,使用零階保持法將其放大兩倍。

1 2
3 4

我們首先按行放大,然後按列放大。

按行放大

1 1 2
3 3 4

我們取前兩個數字:(2 + 1) = 3,然後除以2,得到1.5,近似為1。第2行也採用相同的方法。

按列放大

1 1 2
2 2 3
3 3 4

我們取兩個相鄰的列畫素值1和3。我們把它們加起來得到4。然後將4除以2,得到2,放在它們之間。所有列都採用相同的方法。

新的影像大小

您可以看到新影像的尺寸為3 x 3,而原始影像的尺寸為2 x 2。這意味著新影像的尺寸基於以下公式

(2 * 行數 - 1)X (2 * 列數 - 1)

優點和缺點。

這種放大技術的優點之一是,與最近鄰插值法相比,它不會產生那麼模糊的圖片。但它也有一個缺點,即它只能作用於2的冪次方。這裡可以證明這一點。

兩倍放大的原因

考慮上面2行2列的影像。如果我們必須使用零階保持法將其放大6倍,我們就無法做到。公式顯示了這一點。

它只能放大2的冪次方:2, 4, 8, 16, 32等等。

即使你嘗試放大,你也做不到。因為當你第一次放大兩倍時,結果將與列向放大中顯示的相同,尺寸等於3x3。然後你再次放大,你會得到尺寸等於5 x 5。現在如果你再次這樣做,你會得到尺寸等於9 x 9。

而根據你的公式,答案應該是11x11。(6 * 2 - 1)X (6 * 2 - 1)得到11 x 11。

方法三:K倍放大

介紹

K倍放大是我們將要討論的第三种放大方法。它是迄今為止討論的最完美的放大演算法之一。它解決了雙倍放大和畫素複製的挑戰。在這個放大演算法中,K代表放大倍數。

工作原理

它的工作原理如下。

首先,你必須像在雙倍放大中那樣取兩個相鄰畫素。然後你必須從較大的畫素值中減去較小的畫素值。我們將此輸出稱為(OP)。

將輸出(OP)除以放大倍數(K)。現在你必須將結果新增到較小的值中,並將結果放在這兩個值之間。

再次將值OP新增到你剛剛放置的值中,並將其再次放置在前面放置的值旁邊。你必須這樣做,直到放置k-1個值。

對所有行和列重複相同的步驟,你將得到一個放大的影像。

例如

假設你有一個2行3列的影像,如下所示。你必須將其放大三倍或三次。

15 30 15
30 15 30

在這種情況下,K為3。K = 3。

應插入的值的數量為k-1 = 3-1 = 2。

按行放大

取前兩個相鄰畫素。它們是15和30。

從30中減去15。30-15 = 15。

將15除以k。15/k = 15/3 = 5。我們稱之為OP。(其中op只是一個名稱)

將OP新增到較小的數字。15 + OP = 15 + 5 = 20。

再次將OP新增到20。20 + OP = 20 + 5 = 25。

我們這樣做2次,因為我們必須插入k-1個值。

現在對接下來的兩個相鄰畫素重複此步驟。它顯示在第一個表中。

插入值後,必須按升序對插入的值進行排序,以便它們之間保持對稱性。

它顯示在第二個表中

表1。

15 20 25 30 20 25 15
30 20 25 15 20 25 30

表2。

Table2

按列放大

必須按列執行相同的過程。該過程包括取兩個相鄰的畫素值,然後從較大的值中減去較小的值。然後,你必須將其除以k。將結果儲存為OP。將OP新增到較小的值中,然後再次將OP新增到OP第一次相加的結果中。插入新值。

完成所有這些後,你得到的結果如下。

15 20 25 30 25 20 15
20 21 21 25 21 21 20
25 22 22 20 22 22 25
30 25 20 15 20 25 30

新的影像大小

計算新影像尺寸公式的最佳方法是比較原始影像和最終影像的尺寸。原始影像的尺寸為2 X 3。新影像的尺寸為4 x 7。

因此,公式為

(K * (行數 - 1)+ 1)X (K * (列數 - 1)+ 1)

優點和缺點

K倍放大演算法的一個明顯的優點是它能夠計算任何倍數的放大,這是畫素複製演算法的能力,它也提供了改進的結果(更清晰),這是零階保持法的能力。因此,它包含了這兩種演算法的能力。

該演算法的唯一困難是最終必須進行排序,這是一個額外的步驟,因此增加了計算成本。

廣告
© . All rights reserved.