작성일:
 
2010. 10. 22. 17:26
 


[이미지 마스킹]

- 이미지의 특별한 부분을 성별하여 추출할 때 이용하는 방법
명령어를 이용하여 마스크를 제작하고 이를 벡터연산에 적용하여, 추출한다.
따라서 마스크는 0과 1로 이루어진 2차원 또는 3차원 배열이 될 수 있다.


[이미지 클리핑]

이미지의 픽셀값이 임게값을 중심으로 그 이상은 그대로 두고, 나머지 값은 임계값으로 고정시켜서
원하는 임계값을 기준으로 이미지의 형태를 보고자 할 때 사용하는 방법


[이미지 캡쳐]

간단하게 화면상의 그래프를 문서의 작성이나 기타에 활용하게 캡쳐하여 붙여넣는 방법 (tvrd function)



[이미지 TIFF]


read_tiff, ' 주소 ', 변수
변수=

print,변수.dimentsions
print,변수,pixel_type


[이미지 마스크]

S=dialog_read_image(image=myimage)

plot, bindgen(256)>100
window, 0
tvscl, myimage<140
window, 1
plot, bindgen(256)<140
window 2
tvscl, myimage>140<200
window,3
plot, bindgen(256)<200>140



 plot, bindgen(256)<140

바이트 스케일링을 하면 최소값 140, 최대값 200
그 사이의 60이라는 값을 255로 늘리게 되는 셈이므로 정확도가 높아진다.

[tvscl 함수 smooth, sobel]

tvscl, smooth(myimage, 7)
; 포토샵에 blur 효과 같은 역할, 7단계로 뭉개라는 의미

tvscl, float(myimage)-smooth(myimage, 7)
; 원래 이미지에서 7단계를 뭉갠 이미지를 뺀 값 = unsharp maskin
; 샤프하지 않은 자잘한 구조나 작은 구조들만 나온다.

tvscl, sobel(myimag)
; 위에서 의미하는 같은 설명, 작은 구조만 도드라지게 나온다.


[이미지 마스킹 과정]

file=filepath('convec.dat',subdirectory=['examples','data'])
imagesize=[248,248] ; already known array size
image=read_binary(file,data_dims=imagesize)
tv,image


coremask=image ge 255   
;가운데 코어 부분이 제일 밝은 (255값이므로) 255값만 추출
image1=image*coremask
; 이미지1=이미지 * 255   255 같거나 큰 값만 살림
corextract=image lt 200
image2=image*corextract
; 이미지2 \ 이미지 * 200 200 작거나 같은 값 살린다

loadct,27
tv, image1, 1
tv, image2, 2



;image clipping test

window, 4, xs=496, ys=496
tv,image,0
tv,image > 200,1
tv, image >100,2
tv, image >50,3


wset,1 
;window 1번을 지정
img=tvrd()
write_jpeg, '저장 주소', img

;이러면 흑백만 저장됨

img=tvrd(true=1)
;트루칼라 적용,
write_jpeg,'true.jpg',img, true=1