PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

17. 채널 분리 & 병합

페이지 정보

작성자 관리자 댓글 0건 조회 3,566회 작성일 19-09-28 21:11

본문

17. 채널 분리 & 병합

채널 분리(Split) 및 병합(Merge)

 

영상이나 이미지를 채널을 나누고 합치기 위해 사용합니다. 채널을 B(Blue), G(Green), R(Red)로 분리하여 채널을 변환할 수 있습니다.
OpenCV의 가산혼합의 삼원색 기본 배열순서는 BGR입니다.

 

소스 :

 

import cv2

src = cv2.imread("Image/tomato.jpg", cv2.IMREAD_COLOR)
b, g, r = cv2.split(src)
inversebgr = cv2.merge((r, g, b))

cv2.imshow("b", b)
cv2.imshow("g", g)
cv2.imshow("r", r)
cv2.imshow("inverse", inversebgr)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

설명 :

 

b, g, r = cv2.split(src)

b, g, r = cv2.split(이미지)를 이용하여 채널을 분리합니다.

채널에 순서의 맞게 각 변수에 대입됩니다.

분리된 채널들은 단일 채널이므로 흑백의 색상으로만 표현됩니다.

 


inversebgr = cv2.merge((r, g, b))

cv2.merge((채널1, 채널2, 채널3))을 이용하여 나눠진 채널을 다시 병합할 수 있습니다.

채널을 변형한 뒤에 다시 합치거나 순서를 변경하여 병합할 수 있습니다.

순서가 변경될 경우, 원본 이미지와 다른 색상으로 표현됩니다.


numpy 형식 채널 분리

 

b = src[:,:,0]
g = src[:,:,1]
r = src[:,:,2]

이미지[높이, 너비, 채널]을 이용하여 특정 영역의 특정 채널만 불러올 수 있습니다.

:, :, n을 입력할 경우, 이미지 높이와 너비를 그대로 반환하고 n번째 채널만 반환하여 적용합니다.

빈 이미지

 

height, width, channel = src.shape
zero = np.zeros((height, width, 1), dtype = np.uint8)
bgz = cv2.merge((b, g, zero))

검은색 빈 공간 이미지가 필요할 때는 np.zeros((높이, 너비, 채널), dtype=정밀도)을 이용하여 빈 이미지를 생성할 수 있습니다.

Blue, Green, Zero이미지를 병합할 경우, Red 채널 영역이 모두 흑백이미지로 변경됩니다.
import numpy as np가 포함된 상태여야합니다.

 

 

결과 :

 

 

tomato.JPG 

1.JPG 

2.JPG 

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.