매트랩 8

[MATLAB 영상처리 활용] 애니메이션 GIF 만들기 (Animated GIF)

연산중 혹은 연산후 결과 데이터의 시간별 변화/추이를 애니메이션 이미지 파일로써 시각화(visualization) 할 수 있다면 프로그래밍 혹은 디버깅에서 큰 장점을 발휘할 수 있습니다. 간단한 예로써, 정규분포(normal distribution) 그래프 모양을 결정짓는 두가지 입력 파라메터 - sigma, mu - 중 sigma 값의 변화에 따른 그래프 변화를 관찰하고자 합니다. 가장 간단한 방법으로는 여러 sigma 후보값을 설정하고, 그에 따른 여러 그래프를 만들어 화면 가득히 펼쳐보이는 것입니다. 그러나 여러 그래프를 - 그래프간의 적정한 delay 시간을 주어서 - 하나의 애니메이션 이미지로 만들어서 관찰하는편이 효율적일 것입니다. MATLAB 2022a 버전 이상부터는 "exportgraph..

[MATLAB Data Processing 기초 2] Folder 만들기 및 Navigate to folder - 2 ( dir(), regexp(), strsplit() )

앞 글 " [MATLAB Data Processing 기초 2] Folder 만들기 및 Navigate to folder - 1 ( cd(), mkdir() ) " 에서 다룬 상하위 폴더의 생성조건에 대해 다시 언급하자면, 프로그래밍에 앞서 폴더의 생성조건을 다시 요약하자면, 개체이름: Animal1 부터 Animal5 까지 날짜이름: Day1 부터 Day10 까지 폴더경로: top level folder\Animal\Day\export data.xlsx (OS system이 Windows의 경우) top level folder/Animal/Day/export data.xlsx ( Mac, Linux의 경우) 파일이름: export data.xlsx 예외적인 상황으로 인해 데이터가 2개 이상의 파일 - ..

[MATLAB Data Processing 기초 2] Folder 만들기 및 Navigate to folder - 1 ( cd(), mkdir() )

Confocal microscopy 또는 다양한 실험장비를 사용하면 결과값이 담긴 파일 (*.txt 혹은 *.xlsx 파일 등)이 여러개의 하위 폴더에 저장되는 경우가 있습니다. 예를들어, 'Result' 라는 상위 폴더안에 'day1', 'day2', ...., 'dayn' 라는 하위 폴더가 만들어 지고, 각 하위 폴더에는 'result.txt', 'result.csv' 또는 'result.xlsx' 식의 결과 데이터가 저장되어 있습니다. 만일 모든 데이터를 하나의 파일로 취합하고자 한다면, 하위 폴더의 데이터를 하나하나 열고 데이터를 '복사'하고 특정한 데이터 시트 등에 '붙여넣기' 과정을 반복하여야 합니다. MATLAB은 이러한 하위 폴더를 검색하는 Navigation 기능과 파일을 읽어들일수 있는..

[MATLAB Data Processing 기초 1] Excel file - 불러오기, 저장하기( readtable(), writetable() )

Excel 프로그램은 공학이던 비전문가 이던 분야를 막론하고 접근하기 쉽고, 데이터의 수집, 편집이 직관적이며 공유등이 수월한 장점 때문에 빈번하게 사용되고 있습니다. 하지만 데이터의 크기와 복잡성이 높으면 일일이 수동으로 작업을 처리하기 어렵고 시간적으로 효율성이 떨어질 수가 있습니다. 따라서 MATLAB 등 프로그래밍을 통한 Excel 파일의 데이터 처리를 자동화 할수 있다면 작업시간이 단축되고 업무의 효율을 높일 수 있습니다. 본 포스트에서는 Windows 환경에서 Excel 파일의 데이터를 간단하게 다뤄보고자 합니다. MATLAB은 ActiveX 기술로써 Excel과 커뮤니케이션을 하기 때문에 Excel 대부분의 기능을 활용할 수 있지만 (출처 1, MathWorks Support Team의 공식..

[MATLAB 영상처리 기초 5] 이미지의 화질개선 - Normalization, Standardization

이미지의 normalization, standardization을 소개하는 동영상 앞의 글 [MATLAB 영상처리 기초 3] 이미지의 픽셀값 다루기 - RGB2Gray 에서 RGB 컬러채널을 갖는 이미지의 grayscale 변환을 수행하였습니다. 그리고 grayscale 변환된 이미지 데이터는 MATLAB에서 기본적으로 uint8 형식을 가짐을 알 수 있었습니다. Normalization 보통 MATLAB에서 Image Processing은 double 형식의 이미지 데이터를 다룹니다. 만일 정수형의 픽셀값을 대상으로 사칙연산(곱셈, 나눗셈 등)을 한다면, 연산후 소수점 이하의 값은 제거된다거나 표현가능 범위(여기서 uint8는 0 부터 255까지) 를 넘어서는 경우등 연산결과가 이미지상에 제대로 표현할..

[MATLAB 영상처리 기초 4] 이미지의 픽셀값 다루기 - imcrop( ), 픽셀 intensity 증가

이미지의 특정영역 잘라내기, 픽셀 intensity 선형연산 소개 동영상 본 글에서는 이미지의 특정부분을 잘라내기(Crop) 혹은 추출하여 이미지 프로세싱을 수행후 본래 이미지에 붙여넣기 하는 작업을 해보겠습니다. 자동으로 이미지상의 ROI (Region of Interest) 를 추출하여 연산을 수행하는것은 중급과정에서 다룰 예정입니다. 우선 위의 figure 창에서 임의로 선택한 특정부분을 잘라내기(Crop) 하여 새로운 변수로 지정하여 보겠습니다. 위의 이미지상에서 2개의 좌표 및 픽셀값 표시, 노란색 네모상자는 각각 figure 툴메뉴 중 Tools -> Data Cursor(+ new Data Cursor), Insert -> rectangle 을 이용하였습니다. ( 본 글의 상단에 있는 소개 ..

[MATLAB 영상처리 기초 2] RGB컬러 이미지의 색상채널분리 - imsplit( ), reshape( ), imshow( )

RGB 색상채널분리 방법의 소개 동영상 위의 이미지는 3차원의 RGB컬러 데이터 (세로픽셀 x 가로픽셀 x 색상채널: 4500 x 6000 x 3)를 나타내고, 색상채널은 R(빨강색) G(초록색) B(파랑색) 순서의 데이터를 표현합니다. 위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다. 위의 대상 이미지가 이미 workspace에 "img" 라는 변수에 import 되어 있다고 가정합니다. ( 이미지 파일의 import는 본 블로그의 "[MATLAB 영상처리 기초 1] 이미지 파일 불러오기" 참조 ) img = imread('NCI-jdfn7Z03Qa4.jpg'); 이제는 "img" 변수에 담긴 3차원 컬러 데이터를 각각의 색상채널로 분리하고서 화면에 출력을 시켜봅시다. 단, 색..

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

위의 이미지는 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의 이미지 파일 불러오기 소개 동영상 ..