Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 scikit-learn 라이브러리로 이미지 해상도를 확인하는 방법

데이터 전처리(Data Pre-processing)란 다양한 소스 또는 단일 소스에서 수집된 모든 데이터를 공통 형식 또는 균일한 데이터셋(데이터 유형에 따라 다름)으로 정리하는 작업을 의미합니다. 실제 환경의 데이터는 결코 완벽하지 않기 때문에 누락된 셀, 오류, 이상치(outlier), 컬럼 간 불일치 등이 존재할 가능성이 높습니다. 경우에 따라서는 이미지가 올바르게 정렬되지 않았거나, 흐릿하거나, 크기가 지나치게 클 수도 있습니다. 전처리의 목표는 바로 이러한 불일치와 오류를 제거하는 것입니다.

이미지의 해상도(resolution)를 얻으려면 내장 함수인 'shape'를 사용합니다. 이미지를 읽어들이면 픽셀 값들이 배열 형태로 저장되는데, 이 배열은 곧 NumPy 배열입니다. 이미지를 읽어 배열로 변환한 후에는 이 배열에 shape 함수를 호출하여 해당 이미지의 해상도를 파악할 수 있습니다.

다음은 scikit-learn 라이브러리를 사용해 이미지를 업로드하고 콘솔에 해상도를 출력하는 예제입니다.

예제 코드

from skimage import io
path = "path to puppy.PNG"
img = io.imread(path)
print("Image being read")
io.imshow(img)
print("Image printed on console")
print("The image resolution is ")
print(img.shape)

실행 결과

Image being read
Image printed on console
The image resolution is
(397, 558, 4)

코드 설명

  • 필요한 라이브러리를 임포트합니다.
  • 이미지가 저장된 경로(path)를 정의합니다.
  • 'imread' 함수를 사용하여 해당 경로에 접근하고 이미지를 읽어들입니다.
  • 'imshow' 함수를 사용하여 이미지를 콘솔에 표시합니다.
  • 'shape' 함수를 사용하여 이미지의 해상도를 가져옵니다.
  • 출력 결과의 세 번째 값이 4인데, 이는 이미지가 R(빨강), G(초록), B(파랑) 및 알파(alpha) 값의 4개 채널로 구성되어 있음을 의미합니다.
  • 결과 데이터가 콘솔에 출력됩니다.

출력 결과인 (397, 558, 4)는 각각 이미지의 높이 397픽셀, 너비 558픽셀, 그리고 4개의 색상 채널을 나타냅니다. 만약 PNG처럼 알파 채널을 포함하는 이미지가 아니라 일반적인 JPG 파일이라면 세 번째 값이 3(RGB)으로 표시됩니다. 이처럼 shape 속성 하나만으로 이미지의 크기와 채널 정보를 손쉽게 확인할 수 있어, 이미지 전처리 과정에서 매우 유용하게 활용됩니다.