통계 목적으로 주로 사용할 수 있지만 사실 응용 범위는 끝이 없는 R
특정 질환의 전과 후 비교한 안저사진 분석 그림을 본 순간 R에서도 가능할 것이라는 생각이 들었다.
우선 인터넷에서 안저사진 하나를 구한 다음에 시작했다.
원래는 크기가 4배쯤 컸지만 편의를 위하여 가로 600픽셀 크기로 줄였다.

R에서 그림 파일을 불러오는 방법은 쉽다. 난 JPEG 파일을 구했기 때문에 다음과 같이 적용했다.
library(jpeg)
before_original <- readJPEG(“F:/retina_re.jpg”, native=FALSE)
readJPEG 라는 명령어를 사용하면 되며, native 항목의 옵션에서 FALSE가 기본항목이다.
FALSE를 선택하게 되면 가로픽셀 x 세로픽셀 크기의 matrix 3개(RGB, 3 channel) 가 합쳐진 matrix 로 구성된다.
이 방법으로 불러오면 색상에 대한 정보는 최소값이 0, 최대값이 1로 된다고 한다.
(차원인거 같기는 한데 사실 어떻게 불러야 하는지 모르겠음)
따라서,
before_original [,,1] Red
before_original [,,2] Green
before_original [,,3] Blue
가 되겠다.
나중에 편리할 것 같아서 각각을 나눠서 늘 쓰는 X x Y 의 matrix 로 구성했다.
before_original_1 <- before_original[,,1]
before_original_2 <- before_original[,,2]
before_original_3 <- before_original[,,3]
잘 불러와졌는지 확인하기 위하여 각각의 점들에 해당하는 색상 정보를 바탕으로 점을 찍어 보기로 하였다.
빈 화면을 그리는 방법을 몰라서 우선 빈 화면을 하나 그려야 했다.
그림 파일은 아마 좌측 상단부터 (1,1) 로 구성이 되어 있겠지만,
내가 아는 수학의 세계에서 (1,1)은 좌측 하단에 존재한다.
즉, y축으로 대칭된 구조이다. 그래서 다음과 같이 살짝 변경했다.
plot(c(1,before_original_width), c(-before_original_height, -1), type=”n”, xlab=””, ylab=””)
점을 그려넣어야 하는데,
점의 색상 정보를 입력하는 것은 rgb() 를 사용하면 쉽게 적용시킬 수 있다.
maxColorValue 는 사실 기본이 1이다.
그래서 사각형의 점을 쭈욱 그려보면
for (Y in 1:before_original_height){
for (X in 1:before_original_width){
points(X, -Y, pch=15, cex=1, col=rgb(before_original_1[Y, X], before_original_2[Y, X], before_original_3[Y, X], maxColorValue = 1))
}}

살짝 뭉게지기는 했지만, 같은 화면임을 알 수가 있다.