Python 4

[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 ..

[Python 영상처리 기초 4] 이미지의 픽셀값 다루기 - Crop, 선형연산

본 글에서는 이미지의 특정부분을 잘라내기(Crop) 혹은 추출하여 이미지 프로세싱을 수행후 본래 이미지에 붙여넣기 하는 작업을 해보겠습니다. 자동으로 이미지상의 ROI (Region of Interest) 를 추출하여 연산을 수행하는것은 중급과정에서 다룰 예정입니다. 우선 위의 이미지 에서 보이는 특정부분 (흰색 네모상자)을 잘라내기(Crop) 하여 새로운 변수로 지정하여 보겠습니다. 임의로 지정한 좌표 - tuple ( x좌표, y좌표 ) 형식 ( 753, 1210 ) 부터 ( 2115, 2110 ) - 를 입력 파라메터로 하는 cv2.rectangle( ) 명령어를 이용하였습니다. 여기에서 주의할 점은 cv2.rectangle( ) 명령어에서는 ( x좌표, y좌표 ) 순서의 입력 파라메터를 갖지만, ..

[Python 영상처리 기초 2] BGR컬러 이미지의 색상채널분리 - cv2.split( ), cv2.merge( )

위의 대상 이미지는 3차원의 BGR컬러 데이터 (세로픽셀 x 가로필셀 x 색상채널: 4500 x 6000 x 3)를 나타내고, 색상채널은 R(빨강색) G(초록색) B(파랑색)의 데이터를 표현합니다. 위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다. 위의 대상 이미지가 이미 Jupyter Notebook에 "img_color" 라는 변수에 저장되어 있다고 가정합시다. ( 이미지 파일 불러오기는 본 블로그의 [Python 영상처리 기초 1] 이미지 파일 불러오기 참조 ) import cv2 import matplotlib.pyplot as plt %matplotlib inline # img_color = cv2.imread('path/filename', cv2.IMREAD_COLOR..

[Python 영상처리 기초 1] 이미지 파일 불러오기 - cv2.imread( ), plt.imshow( )

위의 이미지는 3차원의 RGB컬러 데이터 (세로x가로x채널수: 4500 x 6000 x 3)를 나타냅니다. 만일 이미지가 gray scale 혹은 black & white 이라면 2차원 (세로픽셀 x 가로픽셀) 의 데이터를 가지고, 컬러 이미지 라면 3차원 (세로픽셀 x 가로필셀 x 색상채널)의 데이터를 가지며, 색상채널은 B(파랑색) G(초록색) R(빨강색)의 데이터를 표현합니다. ( 주의 하세요! Python에서는 RGB가 아닌 BGR의 순서로 이미지 데이터를 나타냅니다. ) 위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다. Python에서 이미지 데이터를 다루기 위해 다양한 패키지들이 존재하는데 앞으로 OpenCV를 중심으로 Jupyter Notebook 환경에서 설명하겠습..