나중에 내가 보려고 만든 블로그

[Python] 이미지 읽어오기, RGB 값 추출, RGB 평균 구하기 본문

Python

[Python] 이미지 읽어오기, RGB 값 추출, RGB 평균 구하기

winches 2022. 5. 16. 13:27

이미지를 읽어오고 RGB값을 추출하여 그 평균을 사용하려고 아래와 같은 코드를 시행함.

우선 png 파일을 matplotlib.image.imread를 이용해 읽어옴.

해당 파일의 R, G, B를 각 리스트에 append하고 평균값을 출력함.

주어진 경로에서 각 이미지의 RGB 평균값을 구하기 위해 아래와 같이 반복문을 작성함.

평균 RGB값을 소수점 셋째자리까지 출력하도록 함.

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
import matplotlib.image as mpimg
import numpy as np
import glob
import os


path = './'
file_list = os.listdir(path)
 
 
Red = []
Green = []
Blue = []
for i in range(len(file_list)):
    img = mpimg.imread(path + file_list[i])
    for x in img:
        for y in x:
            Red.append(y[0])
            Green.append(y[1])
            Blue.append(y[2])
    R_avg = sum(Red) / len(Red)
    G_avg = sum(Green) / len(Green)
    B_avg = sum(Blue) / len(Blue)
        
    print(file_list[i][0:-4], "(R: {:.3f}".format(R_avg), "G: {:.3f}".format(G_avg), "B: {:.3f})".format(B_avg))
cs

다수의 이미지에서 RGB 평균을 추출할때 유용하게 사용하였다.

이미지를 다룰때 주의할점은 단순히 이미지 경로만 가져와서는 안되고 imread와 같은 모듈로 읽어와야 함.