영상처리

(matplotlib) 이미지 출력

왕현성 2024. 5. 21. 18:52
728x90

이미지 출력(matplotlib)

 

이미지를 R, G, B 채널별로 확인할 수 있음.

 

# 이미지 복사 후 출력
pic_copy = pic_arr.copy()
plt.imshow(pic_copy)
plt.show()

pic_copy.shape
# (853, 1280, 3)

이미지 배열의 shape은 (853, 1280, 3)임. 채널 순서는 R, G, B 순으로 0, 1, 2.

 

R 채널 확인

# R 채널 출력
print(pic_copy[:,:,0])
print(pic_copy[:,:,0].shape)
# (853, 1280)
plt.imshow(pic_copy[:,:,0])
plt.show()

plt.imshow(pic_copy[:,:,0], cmap='gray')
plt.show()

G 채널 확인

# G 채널 출력
print(pic_copy[:,:,1])
print(pic_copy[:,:,1].shape)
# (853, 1280)
plt.imshow(pic_copy[:,:,1])
plt.show()

plt.imshow(pic_copy[:,:,1], cmap='gray')
plt.show()

B 채널 확인

 

# B 채널 출력
print(pic_copy[:,:,2])
print(pic_copy[:,:,2].shape)
# (853, 1280)
plt.imshow(pic_copy[:,:,2])
plt.show()

plt.imshow(pic_copy[:,:,2], cmap='gray')
plt.show()

 

채널별 이미지 확인

 

# R 채널만 남기고 다른 채널 0으로 설정
pic_red = pic_arr.copy()
pic_red[:,:,1] = 0 # G를 0으로
pic_red[:,:,2] = 0 # B를 0으로
plt.imshow(pic_red)
plt.show()

# G 채널만 남기고 다른 채널 0으로 설정
pic_green = pic_arr.copy()
pic_green[:,:,0] = 0 # R를 0으로
pic_green[:,:,2] = 0 # B를 0으로
plt.imshow(pic_green)
plt.show()

# B 채널만 남기고 다른 채널 0으로 설정
pic_blue = pic_arr.copy()
pic_blue[:,:,0] = 0 # R를 0으로
pic_blue[:,:,1] = 0 # G를 0으로
plt.imshow(pic_blue)
plt.show()

 

이 코드는 이미지 배열을 복사해서 R,G,B 채널 별로 확인하는 예제임.

 

각 채널을 분리해서 시각화한 후, 특정 채널만 남기고 나머지 채널을 0으로 설정하여 확인함.