작성일: 2010. 10. 22. 16:15 |
Score 라는 변수가 있다. 이곳에 다음과 같은 변수를 넣고싶다. (ex - 학수번호, 이름, 점수1, 점수2)
만약 score라는 변수 하나만 사용해서 위와 같은 데이터를 어떻게 할까
이때 사용되는것이 구조(Structure)이다.
'구조' 함수는 주로 이미지 파일을 불러올때 사용되는데,
이런 변수 함수는 각각의 데이터를 사용하거나 변경할때 사용된다.
results=query_image('m35color.jpg',info)
자세한 각각의 변수 값은 다음과 같은 방법으로 사용할 수 있다.
help,info,/struct
print,info.type
print,info.channels
;method1
read_jpeg,'m35color.jpg',m35color
tv,m35color,true=1
;method2
s=dialog_read_jpeg
tv,m35color,true=1
[이미지 스케일링 테스트]
large=dist(100)
print,max(large)
70.7107
print,max(large),min(large)
70.7107 0.000000
tvscl,dist(100),1 (이미지 스케일링)
plot,histogram(large)
plot,histogram(bytscl(large))
[이미지 크기 변환]
* rebin 함수는 정수임에 유의
변수_small=rebin(변수,깊이,x축값,y축값)
window,0,xs=200,ys=200
tvscl,변수_small,1
[이미지 색상 뽑아내기]
* reform 함수는 특정 색상 채널값을 뽑아낸다. (0=red, 1=green, 2=blue)
m35r=reform(m35small[0,*,*])
m35g=reform(m35small[1,*,*])
m35b=reform(m35small[2,*,*])
tv,m35r,0
tv,m35g,1
tv,m35b,2
loadct,3 ;(Loading table RED TEMPERATURE)
tv,m35r,3
tv,m35g,4
tv,m35b,5
loadct,14 ;(Loading table STEPS)
tv,m35r,6
tv,m35g,7
tv,m35b,8
* loadct 함수 종류를 알아보려면 xloadct를 사용할것
[이미지 상태 측정]
image_statistics, m35r, count=pix_num, maximum=max_count,minimum=min_count,mean=mean_count,stddev=std_count
print, pix_num, max_count, min_count, mean_count, std_count
90000 255.000 0.000000 4.47331 22.4293
* 별로 중요하지 않음
[이미지 히스토그램 & 특정 채널값]
plot,histogram(m35r)
imfile=filepath('파일 이름', subdir=['서브 디렉터리#1','서브 디렉터리#2'])
read_jpeg, imfile, img
tvscl, img, true=1
; 예전에 사용한 shade_surf는 2차원 데이터를 loadct 값을 사용해서 넣는것
warpimage=img[1,*,*]
tv=warpimage
; 이미지에 강제로 특정 채널값만 빼서 넣음
[바이너리 파일 읽기]
read_binary('파일주소' data_dims=[64,64])
big_dm=rebin(dmdata,512,512)
shade_surf,big_dm
; 512x512 크기의 이미지
; shade_surf의 옵션 shade=warpimage 이런식으로 사용하면
; 위에서 사용한 특정 채널 값에서 사용한 칼라를 3차원 영상으로 나타내고
isurface, big_dm, texture_image=img
; isurface함수는 맨들맨들한 기본 텍스쳐로 붙여서 3차원 영상으로 나타낸다.