전체 글 29

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

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

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

[Python 영상처리 기초 6] 선형 공간 필터링 - Average, Laplacian, Sobel filters

Image processing (영상처리)에서 가장 흔하게 사용되는 기법중의 하나가 이미지 필터링 (image filtering) 입니다. OpenCV에서 기본 제공하는 필터 - Average, Sobel filter 등 - 또는 사용자가 제작한 필터를 이용해 대상 이미지와의 연산(convolution 등)을 통해 새로운 이미지를 생성하는 것을 이미지 필터링(image filtering) 이라고 합니다. 흔히 이미지상의 지정된 부분을 흐릿하게 하거나 대상의 윤곽선(edge)에 강조를 주어 더 선명하게 해주는 기능은 이미지 필터링의 직접적인 역할 입니다. 또한 간접적인 역할로써는, 딥러닝 (deep learning) 네트워크 중 이미지에서 원하는 물체 혹은 대상을 자동으로 검출하는 기능을 하는 CNN (C..

[MATLAB 영상처리 기초 6] 선형 공간 필터링 - Average, Laplacian, Sobel filters

선형 공간 필터링(linear spatial filtering) 소개 동영상 Image processing (영상처리)에서 가장 흔하게 사용되는 기법중의 하나가 이미지 필터링 (image filtering) 입니다. MATLAB에서 기본 제공하는 필터 - Average, Sobel filter 등 - 또는 사용자가 제작한 필터를 이용해 대상 이미지와의 연산(convolution 등)을 통해 새로운 이미지를 생성하는 것을 이미지 필터링(image filtering) 이라고 합니다. 흔히 이미지상의 지정된 부분을 흐릿하게 하거나 대상의 윤곽선(edge)에 강조를 주어 더 선명하게 해주는 기능은 이미지 필터링의 직접적인 역할 입니다. 또한 간접적인 역할로써는, 딥러닝 (deep learning) 네트워크 중 ..

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

앞의 글 [Python 영상처리 기초 3] 이미지의 픽셀값 다루기 에서 BGR 컬러채널을 갖는 이미지의 gray scale 변환을 수행하였습니다. 그리고 gray scale 변환된 이미지 데이터는 기본적으로 uint8 형식을 가짐을 알 수 있었습니다. Normalization 보통 Image Processing은 float (혹은 소숫점) 형식의 이미지 데이터를 다룹니다. 만일 정수형(int 또는 uint)의 픽셀값을 대상으로 사칙연산(곱셈, 나눗셈 등)을 한다면 연산후 소수점 이하의 값은 제거된다거나 표현가능 범위(여기서 uint8는 0 부터 255까지) 를 넘어서는 경우등 연산결과가 이미지상에 제대로 표현할 수 없기 때문입니다. float 등의 소수점 형식의 이미지 데이터는 최소 0부터 최대 1.0 ..