ENVIROI轉為其它格式

2021-09-21 01:52:56 字數 3064 閱讀 3266

本來以為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另外我也參考了別的...