使用PS放大圖片像素與本來像素就很大的圖片之間的區別是什麼?
(如果ps可以實現放大像素功能,那不是用普通相機就能得到像素很高照片)
對於一個高度近視加散光的人來說,平時戴眼鏡看到的世界就是「本來像素就很大的圖片」,摘掉眼鏡看到的就是用PS放大出來的。雖說視野範圍差不了多少,但看出來的是什麼樣子,誰近視誰知道。
一個10x10的圖像放大到100x100,中間多出來的那些像素其實都是猜的。如果你把計算機叫做電腦的話,那這些像素就都是它腦補出來的。PS裡面讓你選的插值演算法,其實就是它腦補用的方法。本質上和你看到背影殺手後的心理活動差不多。其實想像中的東西都是基於你看到的背影,腦補這個過程就是猜想正面如果保持同樣品質,那麼會長成什麼樣子。你要說究竟長什麼樣?誰知道呢。╮(╯_╰)╭
最常用的插值演算法基本有三種,最近鄰域插值,雙線性插值,雙立方插值。PhotoShop裡面給出的無非是這幾種演算法的優化版本,原理應該是一樣的。這些方法都不是很難,想要理解的話中學數學水平就夠了,如果你看到這裡還有耐心的話,可以繼續挑戰一下自己。接下來我會用盡量簡單的語言描述一下幾種方法大概是怎麼工作的。
準備知識:
大家看到的圖片都是二維的,定位其中一個像素的值需要兩個坐標。這句話你也可以理解成第幾行第幾列的某個點是什麼顏色。
舉個簡單的例子,原始圖像是2x2的,也就是四個像素。要是給他放大到4x4,那麼就相當於原來像素一個變成兩個。這時候我要想知道新圖裡面第二行第二個像素是什麼顏色,只要找到原來圖像里,第一行第一個就行了。
這裡需要一個高深的數學知識。
我們在確定新圖中第二行第二個像素的時候,通常可以用(2, 2)來表示它的位置,你可以認為這是一個絕對的坐標值。當然也可以用變態一點的辦法,因為圖像是4x4的,我們可以用百分比或者分數表示現在這個像素的位置,就是(2/4, 2/4)=(0.5, 0.5)。這相當於該像素在整幅圖裡的相對位置。確定顏色的話,你只要到原圖裡找到相對於原圖這個位置的像素就可以了。
這就有一個問題了,新圖裡面,有些位置的像素換算回原始圖像里並不是正好對應某個原始像素,沒準就卡在幾個像素中間了。也就是說你現在在想的這東西,在原始圖像里並沒有體現出來,正好給漏過去了,你現在要補一個出來。
補張WIKI的神圖:
如果紅色的點是原來圖像里的,綠色的是新圖裡根據上面那個百分比的位置換算回來的。你可以看到綠色的點正好漏到中間去了,根本找不到對應的點。但你又想腦補出來一個值,於是要在現有幾個點中間綠色的位置上插進去一個P,找到P就知道綠色點的值了。所以這種方法又叫插值。插值方法有好多種,有這麼幾種是比較常用的。
最近鄰域插值:
PhotoShop裡面說的那個「臨近」就是這種。它的腦補邏輯很簡單,綠點離哪個紅點近,就拿它的值當自己的。比如上面那張圖裡的Q12 。這種方法簡單粗暴無腦,基本就是把原來的東西硬生生的拉扯大了。
比如你有兩塊磚,一黑一白,你覺得倆放一起挺好看的,他們說這叫撞色,於是你決定把你家廁所一面牆都弄成這種風格。於是你就先把這倆磚一左一右貼牆上,然後再找一堆黑白磚,黑的挨著黑的貼,白的挨著白的貼,最終貼滿一面牆。有沒有覺得它和你當初拿在手裡的時候一模一樣?這玩意放過去我們叫馬賽克,現在叫像素風。這種方法好處就是簡單,三歲小孩都會做。缺點就是丑啊,當然你也可以說這黑白分明丑的有風格。不過圖像處理裡面,除非有特別需求,不然一般不會用這種方法。
雙線性插值:
也就是PhotoShop裡面的「兩次線性」。這種方法明顯要高端很多。
還是翻回去看上面那張神圖。看到那倆藍色的點沒?上面有輔助線,你可以恰好看到那倆藍色的點正是綠點在紅點那一行上的水平位置。也就是你把它上下拍扁,那綠點正好會落在藍點的位置上,這個位置在兩個紅點中間,而紅點是我們所說的原圖上有的點。如果按照剛才說的最近鄰域插值,那我們應該挑個紅點當藍點用。不過已經說了這種方法過於簡單粗暴,需要高端一點的方法。
我們可以計算一下,這個藍點究竟離哪個比較近,然後按照遠近從左右都取一點合成一下。比如恰好在中間,那就是從左邊取一半,右邊取一半。把左右的像素值乘以權重加到一起就行了,權重就是遠近程度。
還是考慮那面牆的話,就是兩塊磚中間貼灰色的磚。越靠近黑磚的越黑,越靠近白磚的越白就行了。
想像一下滑梯,它有兩個點,一個高的一個低的。你滑下來的話,肯定是越靠近低點,你離地面越近。從你離低點的水平距離看,你距離地面的高度是個線性函數。實際上畫出來就是條直線,比如這樣的:
所以叫做線性插值。由於你水平方向做插值只能算出來藍點,垂直方向用藍點再算一次才能得到綠點。水平算一次,垂直再算一次,所以叫做雙線性插值,或者兩次線性插值。
雙三次插值:
既然雙線性插值用的是線性函數,那這肯定是要用三次函數了。三次方也叫立方,所以這種方法也叫雙立方插值或者兩次立方插值。
先不想立方不立方,接著考慮廁所貼磚問題。忽然有一天你突發奇想,要把旁邊兩個房間都砸開合併成廁所。黑白你也看膩了,都換成了灰色。那這牆就多了一大塊。左右兩邊多出來的地方,你把左邊灰磚的左邊貼了個綠磚,右邊灰磚的右邊貼了個紅磚。這時候你雇了個高材生給你貼磚,那麼原來廁所位置上的怎麼貼?
按照以前的「線性」做法,倆灰色的中間肯定還是灰的。但這高材生為了美觀,貼的時候考慮了顏色變化的趨勢。
從外向內看,因為左邊一側是綠的,趨勢是從綠到灰。右邊一側則是從紅到灰。我們考慮讓顏色變化繼續保持這種趨勢,兩塊灰磚之間,越靠近中間綠色和紅色就越淡。這樣連續的變化看起來就舒服多了(大概吧-_-b)。
你肯定記得,所謂「變化的趨勢」是用導數來確定的,想要得到連續的變化趨勢,則要讓導函數連續,因而最少也是個三次函數(二次函數導數就是一個值)。所以這種方法叫做雙三次線性插值。
這樣在一個方向上做插值,既要確定左右點的值,又要確定他們的導數,這樣還需要更外側的兩個點。橫豎都考慮的話,十六個點才能算出一個插值來。這種方法相當的麻煩,但是顏色變化會更加平滑,圖像看起來也更舒服。
實際上還有更複雜的插值方法,但不如這三種常用,所以不說了。
總結:
說到這裡有點跑題。不過如果你看懂了,那肯定明白使用PS放大圖像,無非是靠某種規則補齊了缺失的點,而你用數碼相機照出來的圖像上是有真正的點的(除非他也是插值放大的,比如各種數碼變焦),這就是最大的區別。
前面說到了放大,其實縮小也是一樣的,只要每個像素能找到原圖上的對應位置,都可以歸類到插值問題上。
前面說的是這三種方法的基本原理,PhotoShop使用的是改進版本,不過原理應該差不多。
三種插值方法,一種比一種複雜,效果也都不一樣。wiki上有三張圖可以讓你理解這種差別。所有圖像上的黑點就是有確定值的真實點,其他的都是插值出來的。幾種演算法差別一目了然。
下圖中黑色點是有確定值的點,其他的都是插值出來的,你可以看到最近鄰域插值做出來就是馬賽克效果。
雙線性插值效果,可以看到確定點間的過渡:雙三次插值效果,明顯變得更平滑了:P.S.
新年第一個長回答,也是我新年的第一個回答。雖然花了兩個小時,而且有些答非所問,不過希望能給今年開個好頭。另祝大家新年快樂。
請勿轉載PS不是萬能的呀,它的圖片大小更改是有演算法的(截圖裡左下角的單選選項)。簡單來說,它用這些規則來填補和修飾放大之後造成的模糊和失真問題,造成「好像變大了也很清楚」的錯覺。
縮放110%,150%之類的,或者在要求不高的情景下,也許可以依賴PS,但你指望PS把一張小圖的細節放到300%,500%,還要和單反拍出來的效果一樣,就不現實了~啊,附加一個比較好用的放大圖片的方法。
以下回答源於個人ps使用經驗,並非專業(第一次寫這麼長哈):
簡單來說,像素是高了,但不意味著圖片變清楚了。就像高像素的相機手一抖也可能排出模糊的照片。一個簡單的例子:這是10*10像素的一張圖片(原圖):這是沒有保留細節的演算法,直接」放大「後(沒有改變圖片本身)的樣子,可以清晰地看出代表「像素」的小格子。圖像的縮放功能是通過圖像插值演算法來實現的,常用的插值演算法有最鄰近插值、雙線性插值、二次插值、三次插值等等。通過對像素值的插值演算法可以達到圖像放大的目的,但是圖像的真實信息沒有增大,因此不可能達到真實高分辨圖像效果,特別是在圖像細節的表現上。在用PS修改圖像大小時,可以選擇相應插值演算法:(以下來源自網路)「鄰近」的計算方法速度快但不精確,適用於需要保留硬邊緣的圖像,如像素圖的縮放。「兩次線性」的插值方法用於中等品質的圖像運算,速度較快。「兩次立方」的插值方法可以使圖像的邊緣得到最平滑的色調層次,但速度較慢。
「兩次立方(較平滑)」在兩次立方的基礎上,適用於放大圖像。
「兩次立方(較銳利)」在兩次立方的基礎上,適用於圖像的縮小,用以保留更多在重新取樣後的圖像細節。推薦閱讀:
※如何把照片中天空變藍?
※這樣的字是怎麼做出來的?
※請問如何調出這種色調的夜景照片?
※這張獵狗化身肯德基頭像效果是如何製作的?
※這種水墨煙霧效果的圖怎麼用PS做出來?
TAG:AdobePhotoshop | 圖像處理 | 平面設計 | 圖片處理 | 圖像處理軟體 |