Photoshop極坐標濾鏡詳細講解

2023-11-18 17:19:12 來源/作者: / 己有:2人學習過
Photoshop極坐標濾鏡詳細講解對于一些抽象的效果圖,Photoshop中的極坐標濾鏡還有很多東西值得研究……


  【摘要】對于一些抽象的效果圖,Photoshop中的極坐標濾鏡還有很多東西值得研究……

  在國外的網站上看到有人把Photoshop的濾鏡分為兩類,一類是對原圖沒有破壞性的濾鏡,另一類是對原圖有破壞性的濾鏡。破壞性濾鏡多以扭曲濾鏡為主,其中極坐標的破壞性可以算是相當大的一種。

  因為極坐標的破壞性,很多人認為這個濾鏡對于圖像、照片的處理沒有什么太大的實際應用,但是如果對于一些抽象的圖像,我覺得這個濾鏡還是有些地方值得研究一下的,希望各位看過本文也會有所啟發(fā)。

一、極坐標變形的感性認識

  先看一下極坐標對圖像做的是一種什么樣的扭曲。如圖

圖片素材
photoshop


  這一組圖分別是正方型、圓形和色塊通過極坐標變換前后的圖像。

  直角坐標到極坐標的變化:可以認為是頂邊下凹,底邊和兩側邊上翻的過程。

  極坐標到直角坐標的變化:可以認為是底邊上凹,頂邊和兩側邊下翻的過程。

  這里所說的“過程”只是用來加深記憶而已,實際上這個上翻下翻的過程是不存在的,而是直接通過坐標映射而成的。

  1、直角坐標—>極坐標

  原圖中的豎線經極坐標變換后,變?yōu)榉派渚€。

  原圖中的橫線經極坐標變換后,變?yōu)橥膱A。

  當然橫豎交錯畫出來就是蜘蛛網啦。

  請觀察每種顏色色塊在變換之后的位置,原圖的頂部收縮為圓心部分,底部的紅色成為畫布內切圓。左右兩個藍色的色塊向上翻轉之后最終合并為一個扇型,原來的兩個側邊會在上方重合。

  記住每種色塊變化前后的位置不僅有住于加深對極坐標濾鏡的理解而且在實際應用中也有幫助,至少現在你已經學會畫放射線、同心圓、扇型了。

  2、極坐標—>直角坐標


  原圖中的豎線和橫線(坐標軸除外)經變換后,變?yōu)閳D中的拋物線/雙曲線(具體是那種線形我尚未搞清楚,但我更傾向于是雙曲線)。

  坐標軸經變換后,變?yōu)榭v向的5條分隔線,其中1,3,5是原縱軸,2,4是原橫軸。

  對于色塊的變化,請大家注意一下位置和幅度就是了,這個我研究得不多。

  Btw:在前言里我曾說過極坐標對圖像有破壞性,其實極坐標濾鏡也具有一定的還原性,畢竟這是坐標系間的映射。對于執(zhí)行了正變換的圖形再執(zhí)行反變換還是可以恢復出原圖的一些信息的。但是因為極坐標不是一一對應的關系,所以在圖的邊緣部分的信息就不能恢復了。比較另類的應用還可以利用極坐標的還原性為圖片加密。

二、極坐標濾鏡應用

  我使用極坐標濾鏡主要還是用于畫圓,或者說畫以圓為基礎的圖像。我們經常看到用矢量軟件畫的一些重復的有規(guī)律的圖形,其實某些圖利用極坐標濾鏡就可以完成,有時比用矢量軟件做得更好,變化更多。

  2.1 放射線的制作,參見第一部分。

  2.2 同心圓的制作,參見第一部分。

  2.3 扇型,環(huán)型,彩虹,參見第一部分。

  2.4 螺線

  螺旋線在矢量軟件中畫是相當簡單的事,有些軟件本身就有螺線工具。但是對于ps來說,并沒有特別合適的繪制螺線的工具或公式。在扭曲濾鏡里有一個旋轉扭曲(Twirl)濾鏡可以做類似螺線的效果,但感覺可控性不強。

圖片素材
photoshop


  我從畫同心圓得到啟發(fā),發(fā)現可以利用極坐標濾鏡來畫螺線,無論是等距的還是開放式的都可以畫,步驟也比較簡單,只有幾步而已。

  先建立一個矩形空白文件(400*20),畫一條斜線(如果是粗斜線,那么注意斜線在畫布的另兩個頂角部分也要畫斜線處理一下以保證下一步填充時能夠正常銜接),定義圖案。如圖

圖片素材
photoshop


  建立新文件(400*400)用剛才定義的圖案填充。如圖

圖片素材
photoshop


  應用極坐標濾鏡,直角坐標——極坐標

圖片素材
photoshop


  應用光照濾鏡。

圖片素材
photoshop


  再應用球面化濾鏡和其他的修改,完成。

圖片素材
photoshop




  上面這個圖是畫等距螺線用的,如果畫不等距螺線,需要改變每條斜線的間距和斜率。


圖片素材
photoshop
圖片素材
photoshop

  說明:圖片的右下會出現一道黑色的痕跡,這條黑線是原圖的底邊上的黑點映射過來的。原圖的底邊在極坐標后會映射為與新圖外邊框內切的圓(正方形畫布,如果是長方形畫布就是橢圓)以及圓外的所有空白的地方。如果要避免這條黑線,只要注意原圖的底邊線為背景色就可以了。其實這道線也有其特殊的用法,具體見后面的例子。

  畫好的螺線還可以用ImageReady做成Gif動畫。

  2.5 縱向斜線和網格的極坐標變化

  道理都是一樣的,看明白一個,其他的就都會了。但要注意,如果是填充豎線,新的畫布尺寸最好是原定義圖案尺寸的整數倍。不然,原圖的左右兩邊在極坐標濾鏡之后不能很好的融和。

  下面的這兩個圖就利用了剛才介紹的黑線做成了內切圓外的放射線。


圖片素材
photoshop

圖片素材
photoshop

  復雜圖形演變


圖片素材
photoshop


  2.6 網格的極坐標變化

  利用簡單的網格配合其他一些濾鏡的使用可以做出各種出人意料的效果。如圖組6~組9。下面以組8為例簡單介紹一下制作方法。

  先畫網格,不知道大家用什么方法畫網格?填充還是別的什么方法,以后可以交流一下。我畫網格用的是拼貼(Tiles)。


圖片素材
photoshop




  使用極坐標濾鏡(極坐標—>直角坐標),垂直翻轉。


圖片素材
photoshop


  再次s使用極坐標濾鏡(極坐標—>直角坐標),垂直翻轉。


圖片素材
photoshop


  再使用極坐標濾鏡(直角坐標—>極坐標)


圖片素材
photoshop


  使用光照濾鏡,曲線


圖片素材
photoshop

圖片素材
photoshop


  完成效果如下。


圖片素材
photoshop




  組7和組9的制作方法與組8類似,只是中間夾雜了一些其他的步驟。


圖片素材
photoshop

圖片素材
photoshop


  其他應用


圖片素材
photoshop


  2.7 制作光盤

  制作光盤的方法很多,這個當然是用極坐標畫的,但感覺做得并不好。


圖片素材
photoshop


  2.8 放射文字



  組11,關于這個網上有很多教程,不再贅述。


既然如此,那么極坐標到直角坐標轉換有什么用處呢?大部分情況下,需要進行極坐標變換的僅僅是圖像中的一部分,如果直接“做直線->直角坐標轉極坐標”,那么原有圖像也會被扭曲。因此可按照“極坐標轉直角坐標->做直線->直角坐標轉極坐標”的方式,就能保持原有圖像不變。
由此我們可以總結出極坐標濾鏡以下幾個特點:
直角坐標到極坐標轉換用于做效果,而極坐標到直角坐標的轉換用于抵消前者的副作用;水平線轉換成圓,垂直線轉換成放射線,斜線轉換成螺旋線;原圖像上側對應圓心,下側對應圓心外;與風結合
風濾鏡恰好是制作直線特別是漸隱的放射效果直線的好工具。根據上面 “極坐標轉直角坐標->做直線->直角坐標轉極坐標”的理論,使用風來制作直線,就能獲得所需的放射效果



圖片素材
photoshop


  2.9 形狀的極坐標變化

  我最喜歡這個,是無意中試出來的。組12。


圖片素材
photoshop


  具體應用就講到這里,最后講講一點點理論,說一下極坐標轉換濾鏡的工作過程。

三、 極坐標濾鏡的工作過程(直角坐標到極坐標)

  一般而言,位圖圖像中的任意一點(象素)可以用直角坐標(x,y)來表示。同樣這個象素也可以由極坐標(r,a)來表示。極坐標濾鏡的工作過程就是將基于直角坐標系的象素(x,y)經過極坐標映射(r,a)之后再由直角坐標(x’,y’)表示出來的過程。

  直角坐標和極坐標的互化公式如下:

  r = sqrt ( x * x y * y )

  a = arctg ( y / x )

  x = r * cos ( a )

  y = r * sin ( a )

  下面是一段是模擬極坐標濾鏡工作的偽代碼。這個代碼并不是我編寫的,我也只是看懂而已,更詳細的解釋可以參考下面的鏈接:

  https://img.lvups.com/d/file/bigpic/2022/12/26/3zsde4faouh

  (這是個國外的網站,站主利用C 模擬出了一些PS的濾鏡的效果,而且提供源代碼和源程序。)

  for every pixel in the original image do

  {

  // x和y是當前象素在直角坐標內的坐標。

  // 圖像中心點的坐標為 x = 0, y = 0。

  // r 和 a 是象素的極坐標。其中角度a為弧度單位。

  r = sqrt ( x * x y * y );

  a = atan2 ( y / x );

  // R取圖像長和寬的最小值的一半。

  R= min[ image_width , image_height ] / 2

  // 新的x和y是經過極坐標濾鏡變換之后,象素在直角坐標系中的新坐標。這個轉換的目的,特別是R和6.2832(2pi)的選擇,我認為是將轉換后的圖像限定到原畫布大小之內的作用。同時這個步驟最終導致了圖像的變形。

  x = r * image_height / R;

  y = a * image_width / 6.2832;

  filterpixel.x = x;

  filterpixel.y = y;

  }

  這僅僅是一段偽代碼而已,真正的執(zhí)行過程要復雜一些,如果繼續(xù)深入下去就嚴重跑題了,所以深入的討論還是請參見那個鏈接,自己去看吧。

  最后引用那個網站的一句話作為結束語。

  “If used creatively, the effect is worth more than just its novelty.”

  希望各位在看過本文之后能有所啟發(fā)??趧硬蝗缧膭?,心動不如行動,期待各位的作品