本來以為roi只能存為roi之類的格式,結果為了存為分類影像還自己用idl跑了結果,下面是roi轉為tiff格式的程式:
pro roitotiff
filters = '*.txt'
inputfile = dialog_pickfile(title = 'please select a roi file' ,/read, filter = filters)
if inputfile eq '' then return
outputfile = file_dirname(inputfile) + '\' + file_basename(inputfile,'.txt') + '.tif'
outputlog = file_dirname(inputfile) + '\' + file_basename(inputfile,'.txt') + '_logs.txt'
str = ''
openr, 1, inputfile
;read the first line, check if this is a valid file
readf, 1, str
if ~(strcmp(str, '; envi output of rois', 21)) then begin
close, 1
result = dialog_message('this is not a valid envi roi text file!', /information)
return
endif
;wirte log file
openw, 2, outputlog, width = 300
printf, 2, 'input roi text file: ', inputfile
printf, 2, 'output roi tiff file: ', outputfile
;read the second line, get the number of rois
readf, 1, str
strs = strsplit(str, /extract)
n_rois = fix(strs[4])
printf, 2, 'number of rois: ', strtrim(n_rois, 2)
n_pts = lonarr(n_rois)
roi_names = strarr(n_rois)
;read the third line, get the file dimension
readf, 1, str
strs = strsplit(str, /extract)
ns = fix(strs[3])
nl = fix(strs[5])
printf, 2, 'file dimension: ', strtrim(ns, 2), ' x ', strtrim(nl, 2)
printf, 2, 'roi_name > tiff_value'
imgdata = bytarr(ns, nl)
;the next block is the information of each roi
for i = 0, n_rois-1 do begin
;the fist line is ';'
readf, 1, str
;the secont line is roi name
readf, 1, str
strs = strtrim(strsplit(str, ':', /extract), 2)
roi_names[i] = strs[1]
printf, 2, strs[1], ' > ', strtrim(i+1, 2)
;the third line is roi rgb value
readf, 1, str
;the forth line is the roi npts
readf, 1, str
strs = strtrim(strsplit(str, ':', /extract), 2)
n_pts[i] = long(strs[1])
endfor
;the next line is '; id x y b1 ...' or '; id addr b1 ...'
readf, 1, str
strs = strsplit(str, count = cnt, /extract)
;the next block is roi points
for i = 0, n_rois-1 do begin
if strs[2] eq 'x' then begin ;this correspond to the sample/line locations
data = fltarr(cnt-1, n_pts[i])
readf, 1, data
if i ne (n_rois-1) then readf, 1, str
pos = long((transpose(data[2,*])-1)*ns + transpose(data[1,*]) - 1)
endif else begin ;this correspond to the 1d locations
data = fltarr(cnt-1, n_pts[i])
readf, 1, data
if i ne (n_rois-1) then readf, 1, str
pos = long(transpose(data[1,*]))
endelse
imgdata[pos] = byte(i+1)
endfor
write_tiff, outputfile, imgdata
close, 1
close, 2
result = dialog_message('roi to tiff complete!', /information)
end但其實,envi完全可以做到一步解決,紀念蠢蠢的自己:
php字串轉為日期格式,日期格式轉為字串
strtotime 函式將任何字串的日期時間描述解析為 unix 時間戳 自 january 1 1970 00 00 00 gmt 起的秒數 列印當前時間 php eol 換行符,相容不同系統 將指定日期轉成時間戳,例如 20190813121721 echo strtotime 20190813...
js時間戳轉為日期格式
這個在php mssql 日期型別為datetime ajax的時候才能用到,js需要把時間戳轉為為普通格式,一般的情況下可能用不到 彈出 2010年12月23日 10 53 也可以用 如果想彈出 2010 10 20 10 00 00這個格式的也好辦 另外我也參考了別的網站的一些東東,如下 fun...
js時間戳轉為日期格式
這個在php mssql 日期型別為datetime ajax的時候才能用到,js需要把時間戳轉為為普通格式,一般的情況下可能用不到 彈出 2010年12月23日 10 53 也可以用 如果想彈出 2010 10 20 10 00 00這個格式的也好辦 view plain cop另外我也參考了別的...