Recent Posts
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Today
Total
관리 메뉴

코드민수

[Python] 경로 내 이미지 전체의 평균, 표준편차 구하기 본문

[Python]/코드

[Python] 경로 내 이미지 전체의 평균, 표준편차 구하기

코드민수 2023. 5. 6. 22:15
BIG
from glob import glob
import numpy as np
from osgeo import gdal

glob_image_dir = 'D:/temp/image/*.tif'  # 이미지 확장자 수정
image_filename_list = glob(glob_image_dir)


def load_images():
    global image_filename_list
    image_list = []
    for idx, image_filename in enumerate(image_filename_list):

        image_ds = gdal.Open(image_filename)
        image = image_ds.ReadAsArray().astype(np.int16)  # 0~255 이미지는 int8로 충분
        image_list.append(image)

        if idx % 10 == 0: print('load_complete_{}'.format(idx))

    np_image = np.concatenate(image_list, axis=0)

    return np_image


np_image = load_images()

ch0_mean = np.mean(np_image[:, :, 0])
ch1_mean = np.mean(np_image[:, :, 1])
ch2_mean = np.mean(np_image[:, :, 2])

ch0_std = np.std(np_image[:, :, 0])
ch1_std = np.std(np_image[:, :, 1])
ch2_std = np.std(np_image[:, :, 2])

print(f'Mean: {ch0_mean}, {ch1_mean}, {ch2_mean}')
print(f'Std: {ch0_std}, {ch1_std}, {ch2_std}')

단순하게 3 밴드 이미지의 밴드별 평균과 표준편차를 계산하는 파이썬 코드입니다.

 

전체 이미지를 concat하여 연산하기 때문에 이미지가 적은 경우 사용하기 용이합니다.

 

경로만 변경하면 간단하게 사용 가능한 코드입니다.

 

glob_image_dir: 이미지 폴더 + 확장자

 

 

LIST