[問題] 批次讀取與處理之問題

看板R_Language作者 (khkh)時間9年前 (2016/03/24 22:25), 9年前編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 新手(沒寫過程式,R 是我的第一次) [問題敘述]: 沒寫過程式...純新手,如果問題很笨,真的非常抱歉......我會再努力搞懂。 最近嘗試用R進行簡單的影像處理, 我有一份數據檔(.tsv)以及一堆影像檔(test1 00001.jpg~test1 21143.jpg), 想根據數據檔中具有座標, 想依次讓影像檔產生濾鏡,也就是除了座標點的周圍外都黑的。 目前去搜尋了一些方法能製作單一張圖(但還是有點搞不懂意思), 但是卻找不到批次處理多張圖片的方法。 有看到C++利用for(int i=0; i&lt;=10; i++){...再組合成字串的方式, 如果R的概念相同,那這個i是否也可以運用到下方的GPX上, 讓不同圖片可以對應到不同列的座標。 [程式範例]: http://ideone.com/Kyu4j3 library("jpeg") #針對特定座標以外的距離變黑 dat <-read.csv("D:\\...\\MRT.tsv",header=FALSE,stringsAsFactors=TRUE,sep="\t") orgpic = readJPEG("D:\\...\\old folder\\test1 00001.jpg") gazepoint<-function(orgpic,intensity) { newpic=orgpic dx=dim(orgpic)[1] dy=dim(orgpic)[2] GPX=dat[2,35] #test1 00001.jpg需要第35行第2列之X座標 GPY=dat[2,36] #test1 00001.jpg需要第36行第2列之Y座標 #但test1 00002.jpg則需要第35與36行,第3列之X與Y座標 intensity=max(c(dx,dy)) D2=intensity^2/64 for(i in 1:dx) { for(j in 1:dy) { d=(i-GPX)^2+(j-GPY)^2 if(d>D2) newpic[i,j,]=newpic[i,j,]*exp(-(d-D2)/D2*intensity) } } return(newpic) } writeJPEG(gazepoint(orgpic), target ="D:\\...\\new folder\\test 00001.jpg", quality = 0.95) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.82.50 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1458829533.A.675.html ※ 編輯: bedroom0204 (27.247.82.50), 03/24/2016 22:26:24 ※ 編輯: bedroom0204 (27.247.82.50), 03/24/2016 22:26:52

03/25 17:09, , 1F
可以, R有for loop, 有sprintf可以湊檔案名稱
03/25 17:09, 1F

03/29 16:08, , 2F
批次處理我用for解決了,但是上面那邊GPX讀取表格時
03/29 16:08, 2F

03/29 16:09, , 3F
卻出現missing value where TRUE/FALSE needed
03/29 16:09, 3F

03/29 16:09, , 4F
以及‘-’ not meaningful for factors的問題。
03/29 16:09, 4F

03/29 16:10, , 5F
是否是讀取資料的寫法有誤?
03/29 16:10, 5F
文章代碼(AID): #1My_ZTPr (R_Language)
文章代碼(AID): #1My_ZTPr (R_Language)