作者Neisseria (Neisseria)
看板R_Language
標題[問題] 改善這隻龜速的 image filtering 程式
時間Sun Nov 15 09:52:43 2015
[問題類型]:
效能諮詢(我想讓R 跑更快)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
image filtering 是指透過某些處理,對影像産生某種效果,
例如:銳利化、模糊化、突起 (emboss) 等
實際處理時,會以一個 convolution kernel 對圖像上的每一個像素逐一處理
例如:一個 3x3 的 matrix,和 3x3 個像素的色彩值分別相乘
再將結果指定到另一個圖檔相對應的點
可以參考 http://apple.co/1OLL8kt 有圖解比較清楚
我想用 R 練習 image filtering,但只會用龜速的 for loop,
希望大大們能提供優雅快速的解法。
[程式範例]:
https://pastebin.com/Pfsfr8QF
[環境敘述]:
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 8 (jessie)
locale:
[1] LC_CTYPE=zh_TW.UTF-8 LC_NUMERIC=C
LC_TIME=zh_TW.UTF-8
[4] LC_COLLATE=zh_TW.UTF-8 LC_MONETARY=zh_TW.UTF-8
LC_MESSAGES=zh_TW.UTF-8
[7] LC_PAPER=zh_TW.UTF-8 LC_NAME=C
LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=zh_TW.UTF-8
LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] png_0.1-7
loaded via a namespace (and not attached):
[1] tools_3.2.2
[關鍵字]:
image filtering
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.193.91
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1447552366.A.C66.html
1F:→ celestialgod: 你要不要解釋一下你的程式 11/15 16:37
2F:→ celestialgod: 除非是你那個領域的人,不然沒人懂image filtering 11/15 16:38
3F:→ celestialgod: 題外話,通常建議這個都用MATLAB比較快啦 11/15 16:40
4F:→ celestialgod: matlab有blkproc 11/15 16:40
5F:→ celestialgod: 而且你要取平均的話,你在corner/edge 個數都非9個 11/15 17:10
6F:→ celestialgod: 這樣結果是有問題的= = 11/15 17:10
感謝大大耐心回答
要看懂大大的程式,我還得翻許多 R 模組的手冊才行
大大的程式我不敢拿來用,老師一問下來不會解釋 冏rz
其實我不是主修影像處理,這是我們系所的一份小作業的其中一題
我那時想說用比較 naive 的作法
如果老師沒在用 R,至少知道我在用 for loop 土炮 image filtering
邊界如何處理,我再問我的老師好了,之後有機會再上來更新
※ 編輯: Neisseria (175.180.193.91), 11/15/2015 20:05:50
8F:→ celestialgod: 反正我只是平移加一加而已... 11/15 20:26
9F:→ celestialgod: 我沒有想到矩陣平移比較快的方法就用dplyr去做了 11/15 20:26
10F:→ celestialgod: 其實我是說解釋程式而已啦XD 不過謝謝你解釋那麼清 11/15 21:21
11F:→ celestialgod: 楚 11/15 21:21
12F:→ celestialgod: 你如果要做這樣的處理的話 其實有imager可以用 11/15 21:21
13F:→ Wush978: 自己寫,R 的效能一定不好。可以google看看相關套件看看 11/15 23:20
14F:推 Wush978: 如:ripa 11/15 23:20
※ 編輯: Neisseria (111.250.58.187), 12/24/2018 18:37:12