GitHub 블로그
유튜브 영상     깃허브 프로필

1 분 소요

[공지사항] 지킬블로그 안내드립니다.

지킬 블로그에 대하여 알아보겠습니다.

버튼입니다

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import os

# 이미지 디렉토리 경로 설정
image_path = '/Users/choedohyeon/Downloads/data/cloudy'

# 디렉토리 내 모든 파일 리스트 가져오기
img_list = os.listdir(image_path)

# .jpg 파일만 필터링
img_list_jpg = [img for img in img_list if img.endswith(".jpg")]

print("img_list_jpg:", img_list_jpg)

# 이미지 배열을 저장할 리스트 초기화
img_list_np = []

# 각 이미지 파일을 반복하면서 처리
for i in img_list_jpg:
    img_path = os.path.join(image_path, i)
    print("열기를 시도 중:", img_path)

    try:
        # 이미지 파일 열기
        img = Image.open(img_path)
        
        # 이미지를 NumPy 배열로 변환
        img_array = np.array(img)
        
        # 배열을 리스트에 추가
        img_list_np.append(img_array)
        print(i, "이미지 :", img_array.shape)
    except FileNotFoundError:
        print(f"파일을 찾을 수 없습니다: {img_path}")

# 이미지 배열 리스트를 단일 NumPy 배열로 변환
img_np = np.array(img_list_np)
print("img_np의 형태:", img_np.shape)

plt.imshow(img)
plt.title("trian")
plt.axis("off")
plt.show()

sky

  1. 필요한 라이브러리 임포트:

    • numpy는 다차원 배열을 쉽게 처리하기 위한 라이브러리입니다.
    • matplotlib.pyplot은 데이터를 시각화하기 위한 라이브러리입니다.
    • PIL.Image는 이미지 파일을 열고 처리하기 위한 라이브러리입니다.
    • os는 파일과 디렉토리를 다루기 위한 표준 라이브러리입니다.
  2. 이미지 디렉토리 경로 설정:

    image_path = '/Users/choedohyeon/Downloads/data/cloudy'
    
    • 처리할 이미지들이 저장된 디렉토리 경로를 설정합니다.
  3. 디렉토리 내 모든 파일 리스트 가져오기:

    img_list = os.listdir(image_path)
    
    • os.listdir(image_path)를 사용하여 해당 디렉토리에 있는 모든 파일의 이름을 리스트로 가져옵니다.
  4. .jpg 파일만 필터링:

    img_list_jpg = [img for img in img_list if img.endswith(".jpg")]
    
    • 리스트 컴프리헨션을 사용하여 .jpg 확장자로 끝나는 파일들만 필터링합니다.
  5. 이미지 배열을 저장할 리스트 초기화:

    img_list_np = []
    
    • 이미지를 NumPy 배열로 변환하여 저장할 빈 리스트를 초기화합니다.
  6. 각 이미지 파일을 반복하면서 처리:

    for i in img_list_jpg:
        img_path = os.path.join(image_path, i)
        print("열기를 시도 중:", img_path)
       
        try:
            img = Image.open(img_path)
            img_array = np.array(img)
            img_list_np.append(img_array)
            print(i, "이미지 :", img_array.shape)
        except FileNotFoundError:
            print(f"파일을 찾을 수 없습니다: {img_path}")
    
    • .jpg 파일 리스트를 반복하여 각 이미지 파일을 엽니다.
    • os.path.join(image_path, i)를 사용하여 각 파일의 전체 경로를 생성합니다.
    • Image.open(img_path)로 이미지를 열고, np.array(img)로 NumPy 배열로 변환합니다.
    • 변환된 배열을 img_list_np 리스트에 추가합니다.
    • 파일을 찾을 수 없는 경우 FileNotFoundError를 잡아서 오류 메시지를 출력합니다.
  7. 이미지 배열 리스트를 단일 NumPy 배열로 변환:

    img_np = np.array(img_list_np)
    print("img_np의 형태:", img_np.shape)
    
    • 리스트에 저장된 이미지를 단일 NumPy 배열로 변환하고, 배열의 형태를 출력합니다.
  8. 마지막으로 불러온 이미지 표시:

    if img_list_np:
        plt.imshow(img_list_np[-1])
        plt.title("마지막으로 불러온 이미지")
        plt.axis("off")
        plt.show()
    else:
        print("불러온 이미지가 없습니다.")
    
    • img_list_np에 이미지가 있는지 확인합니다.
    • 이미지가 있으면, plt.imshow(img_list_np[-1])를 사용하여 마지막 이미지를 표시합니다.
    • plt.title("마지막으로 불러온 이미지")로 제목을 설정하고, plt.axis("off")로 축을 숨깁니다.
    • 이미지가 없으면, “불러온 이미지가 없습니다.”라는 메시지를 출력합니다.

댓글남기기