MATLAB 영상처리 기초 - 화질향상 및 공간필터링

[MATLAB 영상처리 기초 1] 하나의 이미지 파일 불러오기 (part1) - imread( ), imshow( )

toyprojects 2023. 3. 1. 18:37

 

 

Cells from cervical cancer - National Cancer Institute (출처1)

 

 

위의 이미지는 3차원의 RGB컬러 데이터 (세로x가로x채널수: 4500 x 6000 x 3)를 나타냅니다. 

만일 이미지가 grayscale 혹은 black & white 이라면 2차원 (MATLAB의 경우; 세로픽셀 x 가로픽셀)

의 데이터를 가지고, 컬러 이미지 이라면 3차원 (MATLAB의 경우; 세로픽셀 x 가로필셀 x 색상채널)의

데이터를 가지며, 색상채널은 R(빨강색) G(초록색) B(파랑색) 순서의 데이터를 표현합니다.

위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다.

 

이제 MATLAB에서 이미지를 Workspace로 불러와봅니다. 

하나의 이미지를 불러오는 방법은 여러가지가 있고 자주 사용되는 4가지 방법을 소개합니다. 

 

 

 

MATLAB의 이미지 파일 불러오기 소개 동영상

 

 

 

첫번째 방법. Import Wizard 이용

 

Current Folder 창에서 대상 이미지파일 선택후 마우스 우클릭 -> Import Data 클릭

 

 

 

Import Data를 클릭하면 Import Wizard가 실행되며 우측하단에 Finish 클릭

 

 

 

우측 workspace 창에 "NCI-jdfn7Z03Qa4" 라는 변수에 이미지 데이터가 load 되어 있음을 알수있습니다. 

 

 

 

 

 

두번째 방법.  imread( 'filename' ) - 현재 작업폴더의 이미지 파일을 불러오는 경우

 

 

 

img = imread('NCI-jdfn7Z03Qa4.jpg');

 

 

현재 작업중인 Current Folder에 대상 이미지파일이 존재하는 경우, 이미지 파일이름을

입력 파라메터로써 imread() 함수에 전달하면 원하는 변수명(위의경우 "img")에 불러온

이미지 데이터를 저장할 수 있습니다. ( 파일경로와 파일이름에 대소문자 주의!! )

 

 

세번째 방법.  imread( 'path/filename' ) - 다른 폴더에 위치한 이미지 파일을 불러오는 경우

 

이미지 파일들이 위치한 folder의 구조 및 이미지 데이터 불러오기

 

 

img = imread('images/coin.jpg');

 

 

위의 Current Folder 창에서 보듯이 'image_load' 와 'images' 라는 폴더에 각각 이미지 파일들이 

위치한 경우 특정 폴더의 이미지 데이터를 workspace에 불러오기 위해서는 정확한 폴더와

파일이름을 입력 파라메터로써 imread( ) 함수에 지정해야 합니다. 

 

 

다른 폴더의 이미지 데이터 불러오기

 

 

img = imread('../images/coin.jpg');

 

 

만일, 현재 작업폴더가 'image_load' 이고 상위 폴더인 'images'의 'coin.jpg' 를 load 하려면, 

파일경로 앞에 ' ../ ' 를 붙여주어야 합니다. 

즉, ' ../images/coin.jpg' 를 imread( ) 함수의 입력 파라메터로써 지정합니다.

 

 

 

네번째 방법.  Add to Path -> imread( 'filename' ) - 다른 폴더에 위치한 이미지 파일을 불러오는 경우

 

다른 폴더를 현재 작업경로에 포함 시키기

 

 

앞서 다른 폴더에 위치한 이미지 파일을 workspace에 불러오는 경우, 정확한 폴더의 이름과

이미지 파일 이름이 필요했습니다. 하지만 매번 full path를 입력하는것은 번거로울 따름입니다.

MATLAB은 현재 작업폴더가 아닌 다른곳에 위치한 폴더 또한 작업경로에 추가하는 'Add to Path'

기능을 제공합니다. 

 

위와 같이 작업경로에 추가하고자 하는 폴더를 선택하고 마우스 우클릭 ->

펼쳐진 메뉴에서 'Add to Path' 선택 -> 소메뉴에서 'Selected Folders and Subfolder' 선택. 

(소메뉴의 'Selected Folders' 를 선택하면 하위폴더를 작업경로에 추가하지 않습니다)

 

 

다른 폴더를 현재 작업경로에 포함 시킨후 이미지 데이터 불러오기

 

 

img = imread('coin.jpg');

 

 

이제는 경로명에 폴더이름을 입력하지 않아도 이미지 파일 이름만으로 workspace에 이미지 데이터를

load 할 수 있습니다. 

만일 'Add to Path' 과정을 생략하고 이미지 파일 이름만으로 이미지 load 를 시도 한다면 Command

Window에는 error 메시지를 출력할 것입니다.

 

 

 

이미지 파일 출력 

 

이번에는 workspace에 불러온 이미지 파일을 출력해 보겠습니다.

두번째 방법으로 불러온 이미지가 이미 "img" 라는 변수에 저장되어 있으므로 다음 코드로 출력할 수

있고, 첫번째 방법으로 불러운 이미지 변수는 파일 그 자체 이름과 동일하므로 밑의 주석처리된 코드와

같이 화면에 대상 이미지를 출력할 수 있습니다.

 

 

figure;
imshow(img)

% imshow('NCI-jdfn7Z03Qa4.jpg')

 

 

 

 

 

 

출처1: https://unsplash.com/photos/jdfn7Z03Qa4

Published on September 7, 2021.6  Free to use under the Unsplash License

 

사진 작가: National Cancer Institute, Unsplash

Cells from cervical cancer – Splash에서 National Cancer Institute의 이 사진 다운로드

unsplash.com

Published on September 7, 2021Free to use under the Unsplash License