matlab 15

[MATLAB 영상처리 기초 1] stack image, image-set 불러오기 (part2) - imread( ), z-projection, imageDatastore( )

Stack image, image-set 불러오기 소개 동영상 Stack image 불러오기 위의 이미지는 인간의 뇌를 MRI(자기공명영상장치)로 촬영한 영상입니다. ( 위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다.) 인간의 뇌를 수평방향 섹션으로 layer별로 imaging 한것을 하나의 이미지 파일로 담았고, 이것을 stack image 이라고 합니다. 따라서 하나의 stack image에는 여러개의 layer 또는 frame 이미지를 저장하고 있습니다. 대상 이미지의 세부정보, 예를들어 layer의 수, 이미지의 너비, 높이 등을 알기위해 imfinfo( ) 명령어를 사용하였고, 모든 layer 데이터를 하나의 변수에 저장하기 위해 imgSet 변수를 생성하였습니다. 각..

[MATLAB 영상처리 활용] Color Objects Detection/Segmentation

Image processing, computer vision 분야에서 이미지/동영상의 특정 objects를 검출하거나 움직임을 추적하는 방식으로써 SIFT, SURF 등의 알고리즘이 주로 사용됩니다. 이는 대상 objects의 특징검출(feature detection) - 예를들어 objects의 엣지, 코너등의 특징이 되는 점, 선, 면적등 - 과 image processing 테크닉이 결합되어 image matching을 수행 합니다. 본 글에서는 도로를 달리는 빨간색의 자동차를 검출 (detection/segmentation)하는 쉽고 간단한 알고리즘을 묘사하겠고, SIFT, SURF 등의 알고리즘을 이용하지 않습니다. 그리고 본 방식은 사용자의 개입을 일부 필요로 하며, 대상 objects의 검출..

[MATLAB 영상처리 기초 9] BW 이미지의 Objects 다루기 1 - bwconncomp( ), labelmatrix( ), regionprops( ), bwarea( )

BW 이미지의 Objects 다루기 소개 동영상 이진화된 이미지(Black & White)는 0, 1 단 두개의 픽셀값을 가집니다. 따라서 검정색과 흰색으로 이미지를 표현하며 - 예를들어 [0, 1] 사이의 - contrast, brightness 등은 표현이 불가합니다. BW 이미지는 주로 물체의 mask 또는 이미지상의 물체검출 (objects extraction/segmentation) 등에 주로 사용되며 본 블로그의 [MATLAB 영상처리 활용] 검출된 cell(세포) 컬러 하이라이트 주기 - cell extraction 에서 그 예를 찾아볼 수 있습니다. RGB컬러 또는 gray scale 이미지의 BW변환은 별도의 주제로써 - [MATLAB 영상처리 기초3] 이미지의 픽셀값 다루기 - Bina..

[MATLAB 영상처리 기초 8] Affine Geometric Transformation - affine2d( ), imwarp( )

Affine Geometric Transformation 소개 동영상 Affine geometric transformation 은 하나의 이미지 공간의 점, 선, 면의 특징을 유지한채 다른 공간으로의 선형 매핑(linear mapping)을 의미하며, 영상처리에서 흔하게 쓰이는 변환중의 하나입니다. 이미지의 확대/축소, 회전, 이동, 반사 등이 그 예입니다. 밑의 affine transformation matrix에 보듯이 입력공간을 대상으로 사용자가 지정한 변환 또는 매핑을 수행한 결과로 출력공간이 생성됩니다. 3x3 크기의 매트릭스를 affine matrix 라 부르며, 매트릭스의 값에 따라 앞서 말한 입력공간에 대한 확대/축소, 회전 등의 변환이 가능합니다. 이미지의 변환(transformation..

[MATLAB 영상처리 기초 7] 이미지의 화질개선 Contrast-Brightness-Gamma - part1

이미지의 brightness & contrast개선 소개 동영상 앞서 [MATLAB 영상처리 기초 4] 이미지의 픽셀값 다루기 - Crop, 선형연산 에서 보았듯이, 픽셀값을 증가시키면 이미지의 밝기가 밝아짐을 알 수 있습니다. img_gray_crop_UP = img_gray_crop .* 1.7; % intensity 70% UP 단순히 픽셀값을 증가시킨다면 이미지의 Global 픽셀값들이 증가하므로 원하지 않는 결과를 얻을 수 있습니다. 예를들어 ROI (region of interest) 의 픽셀값 분포가 높거나 낮은 intensity에 집중분포해 있다면 이 영역만을 확장시켜 주어 밝기나 컨트래스트를 개선할 수 있지만, 전 영역의 픽셀값을 증가시키면 그저 빛바랜 듯한 이미지 결과가 나오기도 합니다..

[MATLAB 영상처리 활용] 검출된 cell(세포) 컬러 하이라이트 주기 - cell extraction

위의 이미지는 Anwer et al., (출처 1) 의 페이퍼에서 제시하는 microglial cell을 기록한 영상파일 입니다. ( 자세한 사항은 본 블로그의 [MATLAB 영상처리 활용] Microglial cell segmentation review를 참조해 주시고, 위의 이미지는 본 블로그 맨밑 출처 1에서 제시하는 이미지로써 이곳에 가셔서 다운로드 받을 수 있습니다. ) 만일 이미지 프로세싱의 목적이 위의 영상에서 microglial cell을 검출(extraction) 하는것이라면, 최종결과 중의 하나로써 검출된 cell(세포)의 위치를 지정된 색상으로 덧입혀 표시하는 결과 이미지일 것입니다. 보통 cell(세포)의 검출에는 black & white mask가 활용되므로 이를 이용해 간단한 예..

[MATLAB 영상처리 활용] Microglial cell extraction/segmentation review - part1

Microglial cell은 뇌신경계에서 일종의 immune cell로 알려져 있으며 최근에 다양한 시각으로 활발한 연구가 진행중입니다. 일반적인 실험/파이프라인 설계는 two-photon 또는 confocal microscope 등으로 microglia immune response의 dynamics 를 이미징 하고나서, 이미지 분석을 통해 의미있는 데이터를 추출하는 순서로 진행합니다. 실험 수행후 수많은 이미지 모음(image-set)을 만들고, 하나의 이미지에서 수많은 유의미한 데이터를 얻을 수 있습니다. 따라서 자동화된 cell 검출 (automatic cell segmentation) 알고리즘/프로그램이 많이 공개되어 왔고 현재에도 계속 발전되고 있습니다. 본 포스트에서는 이미 공개된 micro..

[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 기능과 파일을 읽어들일수 있는..