推 seth5421: 頭推 07/06 05:00
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/06/2020 05:09:50
推 antitank: 高手 07/06 07:16
推 changmada: 大神!作品真是完美 07/06 07:45
推 AzureSoul: 看到傅立葉轉換我就跪了 07/06 07:58
推 Lian949: 已跪 07/06 07:59
推 carl3104: 該快推不然網友以為我看不懂 07/06 08:46
推 zaqwer: 這裡不是DSLR板嗎?為什麼我都看不懂?! 07/06 08:52
推 lvlvlv2g: 傅立葉到底是誰啊啊啊啊啊啊啊啊(崩潰 07/06 08:55
推 carl3104: 樓上 我記得是某個風景攝影大師吧 07/06 09:16
推 soarling: 不囉嗦 看到FT就推 07/06 09:24
推 notsmall: 原來是影像處理大師啊 07/06 09:29
推 zebirlin: 太強 已跪 07/06 09:32
推 Rogozov: 看到攝影版出現傅立葉轉換真的是只能跪了 07/06 09:33
推 AnewMitch: 跪了 07/06 09:36
推 x81089130: 推 07/06 09:36
推 hchen18: 第一次在攝影版看不懂文章XDD 07/06 09:44
推 DaJoJo: 強 07/06 10:01
推 Wangdy: 快推不然別人因為我看不懂 07/06 10:20
推 shachitw: 太神啦 07/06 10:22
推 Jokering5566: 科學精神 給推 07/06 10:25
推 taleschia: 我媽問我為什麼大中午要跪柏油地面... 07/06 10:31
推 penguin0172: 想請問原po將兩張相片做convolution可以得到中心座標 07/06 10:32
→ penguin0172: 的原理是什麼?謝謝 07/06 10:32
推 meimeiamy: 我媽問我為什麼跪著看手機 07/06 10:39
推 eiki787: 傅立葉轉換 早就忘光光的東西 07/06 10:46
推 haze: 好強!!! 07/06 10:53
推 enderboy7652: 強 07/06 10:58
推 briantw: 推,這我跪了... 07/06 11:00
推 yen0619: 跪了 07/06 11:08
推 blessme: 下次有人說學數學沒用我就拿這篇打臉他 07/06 11:10
推 louis2333: 有沒有人支援一下白話文.. 07/06 11:11
推 XiaoSung: ?????先跪了 07/06 11:20
推 octboy1978: 不懂……快推 07/06 11:28
推 GohHiong: 我記得明明學過傅立葉可是看不懂這篇XD 真的太神了! 07/06 11:32
推 pupuliao: 我的理解是 因為每一張照片的中心點會有所偏差 07/06 11:33
→ pupuliao: 所以要透過找出太陽中心 重新調整每一張照片 07/06 11:34
推 cowboy17935: 看不懂 只好推了 07/06 11:34
推 kblover: 超神~ 07/06 11:34
→ pupuliao: 那這樣說天文台的設備應該可以抵銷這類誤差 07/06 11:35
推 SonyA7RIII: 您是神 07/06 11:38
推 st210113: 我以為走錯版了 原PO太強大啦 07/06 11:39
推 ceoper256: 22樓:把convolution想像成兩個函數的空間乘積的話 07/06 11:41
→ ceoper256: 就可以把捲積結果當成「遮罩與太陽輪廓重疊面積最大」 07/06 11:43
→ ceoper256: 的位置,因為是圓形所以這位置就是太陽圓心,大概吧 07/06 11:45
→ ceoper256: 低智商文組建構式理解勿嗆QQ 有請高手說明實際的計算 07/06 11:46
感謝幫忙說明,我也試試補充說明,以本文太陽版用法來說,請看文內附圖輔助,
A 圖解析度為 4,608 x 3,456 = 15,925,248 像素,這是 P950 的解析度 16M。
B 圖(遮罩)解析度為 2,423 x 2,423,因為這是我拍到的太陽的大小。
A 與 B 圖皆為黑白,來想像捲積計算:
* 對 A 圖內每一個像素做以下運算,有 15,925,248 個像素,所以要做 15,925,248 次:
* 把 B 圖(遮罩)中心對齊疊在該 A 圖像素後,
計算 A,B 兩圖相疊的地方,顏色都是白色的像素位置有幾個。
因此可以想像當上述遮罩中心跑到 A 圖太陽中心時,A,B 兩圖都是白色的數量會最大化,
也可以想像當遮罩中心從太陽中心往上下左右任何一方向移動後,
A,B 兩圖都是白色的數量都會下降,
所以取捲積結果內,數字最大的座標即為太陽中心座標。
由此可知本法要能正確找到太陽中心座標的關鍵在於遮罩的設計,
與太陽能否很乾淨地從背景分離出來,
遮罩的大小一定要剛好符合你所拍到的太陽的大小,遮罩太大或太小都會造成
捲積結果有多個座標都是最大值,而造成選擇困難的誤差。
如果太陽邊界不夠乾淨,例如有光暈,可能需要多嘗試幾個轉黑白的臨界值,
直到找到乾淨的黑白太陽邊界,程式才會準。
* 額外說明:
直接計算這個捲積共需要做:
4,608 x 3,456 x 2,423 x 2,423 = 93,496,000,315,392 個乘法與
幾乎一樣多個加法運算,如果簡單用一個時脈一個運算來看,
5GHz 的 CPU 也要花 93,496,000,315,392 / 5,000,000,000 = 18,699 秒
約 5.2 小時才算的完,而本篇每張圖都用了兩次捲積,
一張圖要花上半天是無法接受的。
但若使用傅立葉轉換法,只要 2~3 秒即可完成。
推 rinkai: 樓上土木巨巨大大大說自己文組那我們乾脆ryyyyyy 07/06 11:59
推 m18680768: 好猛! 07/06 12:40
推 john801110: 所以這個程式是大大自己設計的?能出下載版嗎XDD我極 07/06 12:42
→ john801110: 軸沒對準也是慢慢偏移 07/06 12:42
推 diablohinet: 超強...已跪 07/06 12:59
推 godchildtw: 還以為有EXE可以用了,2300多張手動一張一張調, 07/06 13:01
→ godchildtw: 剩下200張就調完了。 07/06 13:01
推 jeffc815731: 好強 最後幾乎是教科書級的照片 07/06 13:53
推 tom2541c2: 我媽叫我不要再跪著滑手機了 07/06 14:18
推 Epsilon: 強!要不要考慮釋出原始碼或可執行檔讓其他人下載? 07/06 15:50
推 andy3020: 學生時期沒搞懂過傅立葉........太猛 07/06 15:53
推 pirrysal: 太神啦! 07/06 16:01
推 erig25: autocorrelation? 07/06 16:23
推 rainxo6p: …是神 07/06 16:27
推 IslandHeart: 這可以寫論文了XD 07/06 16:57
推 windblood: 先跪在說... 07/06 17:07
推 leion237: 推推推,我日環蝕是手動追日五分鐘拍一張,再土法煉鋼用 07/06 17:23
→ leion237: PS圖層去對齊超花時間XD 原PO實在是實作高手 07/06 17:24
看來也有幾位版友有類似的需求,我正在整理一個比較能看的版本並會釋出原始碼,
目前的狀況是參數是寫死在程式內,我覺得至少還需要再寫一個文字介面,
也要寫一下使用說明,並打包成 EXE 給沒有安裝過 Python 執行環境的人使用,
這些工作還需要花一點時間,如果沒有花太久會直接更新在本篇~
推 janghow: 太強大了 07/06 17:30
推 Kln: 跪得我膝蓋好痛 07/06 17:55
推 HsuHsiangYun: 看不懂XDD 07/06 18:14
推 newsbow: 跪 07/06 18:53
推 SDGGF: 這光看懂就夠我頭昏,佩服大大的實作精神 07/06 19:35
推 Chdolodocha: 看不懂 跪 07/06 19:38
推 mjrt: 你的海堤全景照片竟然錄到我在收東西… 07/06 19:42
推 robin80829: 太猛了!推 07/06 20:02
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/06/2020 20:22:52
推 ray6031515: 讚 完全看不懂哈哈哈 07/06 20:39
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/06/2020 21:20:15
推 bluefancy: 道具太專業 07/06 21:32
推 ferrinatice: 我以前學傅立葉只會時域轉頻域,看不懂為何這樣可以 07/06 21:53
→ ferrinatice: 降低運算量耶,是否能補充說明 07/06 21:53
如果輸入影像大小為為 M x N,遮罩大小為 m x n
直接計算捲積的計算複雜度為 O(MNmn)
傅立葉法的計算複雜度為 O(MNlog(MN))
主因在於時域下的捲積等於頻域下的相乘;頻域下的捲積等於時域下的相乘這個理論。
如果有夠快的傅立葉算法,頻域下只要處理 MN 個複數乘法,
相較於時域下 MNmn 個實數乘法。
配合 FFT (Fast Fourier transform) 演算法的發明,
讓離散傅立葉轉換的計算複雜度得以接近理論最小值 O(NlogN)。
實務上當你的輸入與遮罩大小比較小時,例如教科書上常見的 3x3 或 5x5 時,
用傅立葉法反而會比較慢。
→ hotdogee: 其實是道具、經驗、技術都不足,只會靠後製qq 07/06 21:56
推 Kln: 原po的解釋很清楚,很清楚地讓我明白,我真的完全聽不懂XDDD 07/06 22:53
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/06/2020 23:19:29
推 mikechang: 推! 07/06 23:21
推 chen841115: 跪了 07/06 23:32
推 ahaw99: 對不起 我沒有資格拿相機 07/06 23:46
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/06/2020 23:49:31
推 cutebowbe: 我以為我走錯版了 路過抱歉 07/07 01:24
→ cutebowbe: 第一次逛完DSLR版不是去google設備規格,而是去google 07/07 01:25
→ cutebowbe: 數學名詞XDDD 07/07 01:25
推 alan773421: 誰說數學沒用 07/07 10:16
推 pupuliao: 研究所做影像分析的路過 好強 我只看懂 最前面的方法 07/07 11:23
→ pupuliao: 傅立葉轉換我不會 不過 第一種方法 實際運算量不會那麼 07/07 11:23
→ pupuliao: 大 因為 每次運算實際上 只有B框的 最外一圈會改變 07/07 11:25
→ pupuliao: 痾 好像不太對 算了XD 畢業太久了 07/07 11:26
推 kblover: 工數有教啦 簡單講就是透過時頻轉換後結果相同 07/07 11:57
推 kblover: 但是在頻域做速度快 做完再把結果轉回時域 07/07 11:58
→ kblover: 不過好像不是每個系所都有教到這段XD 07/07 11:58
→ kblover: 我自己要不是看這段也都忘得差不多了XDDD 07/07 11:58
→ kblover: 我沒記錯的話是這樣啦 記錯就...請幫補充 07/07 11:59
推 ttamura: 推 傅立葉轉換也能用在影像鑑識領域! 07/07 21:09
推 DrFuck: 不明覺厲.......。 07/07 21:19
推 wbenjin: 我覺得你直接在空間域convolution會比較快,畢竟pixel沒 07/07 23:38
→ wbenjin: 很多 07/07 23:38
→ wbenjin: 喔你的kernel很大,那應該是轉到頻域比較快,沒事 07/07 23:39
推 canandmap: 強 07/08 00:52
推 molk: 哇嗚… 07/08 10:43
推 rgbff: 同事問我為什麼跪著看PTT,還有傅先生是誰 07/08 12:57
推 runJ13: 推,最後一張好像我以前色彩學的作業 07/08 21:39
推 crayon3shawn: 推推 雖然看不懂 07/10 13:55
已於文末補上程式下載位址與簡易使用說明囉,如果使用上有問題歡迎提問~
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/11/2020 01:03:16
※ 編輯: hotdogee (140.112.93.11 臺灣), 07/11/2020 03:26:25
推 capri75: 推 雖然完全看不懂 Orz 08/04 19:32
推 LzHH: 先跪 08/06 10:37