반응형
채널 처리 함수
함수 설명
cv2.merge(mv[ , dst]) >> dst
|
||||
인수 설명 |
|
cv2.split(m[ , mv] >> mv
|
|||||
인수 설명 |
|
*merge와 split은 위에서 설명한 것과 같이 채널을 합치거나 나누어 주는 opencv함수이다. cv2.spilt()을 예를 들면 BGR채널을 B채널, G채널, R채널로 각각 나누어 반환한다. cv2.merge는 B채널, G채널, R채널 3개의 채널을 합쳐 BGR채널로 만들어 주는 함수이다.
영상 split
소스 코드
import cv2
image = cv2.imread( "images/color.jpg", cv2.IMREAD_COLOR) # 영상 읽기
if image is None: raise Exception("영상 파일 읽기 오류 발생") # 예외 처리
if image.ndim != 3: raise Exception("컬러 영상 아님")
bgr = cv2.split(image) # 채널 분리: 컬러영상--> 3채널 분리
# blue, green, red = cv2.split(image)
print("bgr 자료형:", type(bgr), type(bgr[0]), type(bgr[0][0][0]))
print("bgr 원소개수:", len(bgr))
# 각 채널을 윈도우에 띄우기
cv2.imshow("image", image)
cv2.imshow("Blue channel" , bgr[0]) # blue 채널
cv2.imshow("Green channel", bgr[1]) # green 채널
cv2.imshow("Red channel" , bgr[2]) # red 채널
# cv2.imshow("Blue channel" , image[:,:,0]) # 인덱싱
# cv2.imshow("Green channel", image[:,:,1])
# cv2.imshow("Red channel" , image[:,:,2])
cv2.waitKey()
실행 결과
bgr 자료형: <class 'tuple'> <class 'numpy.ndarray'> <class 'numpy.uint8'>
bgr 원소개수: 3
영상 merge
소스 코드
import cv2
image = cv2.imread( "images/color.jpg", cv2.IMREAD_COLOR) # 영상 읽기
if image is None: raise Exception("영상 파일 읽기 오류 발생") # 예외 처리
if image.ndim != 3: raise Exception("컬러 영상 아님")
bgr = cv2.split(image) # 채널 분리: 컬러영상--> 3채널 분리
# blue, green, red = cv2.split(image)
print("bgr 자료형:", type(bgr), type(bgr[0]), type(bgr[0][0][0]))
print("bgr 원소개수:", len(bgr))
# 각 채널을 윈도우에 띄우기
cv2.imshow("Blue channel" , bgr[0]) # blue 채널
cv2.imshow("Green channel", bgr[1]) # green 채널
cv2.imshow("Red channel" , bgr[2]) # red 채널
# 채널을 합친후 다시 윈도우에 띄우기
dst = cv2.merge([bgr[0], bgr[1], bgr[2]])
cv2.imshow("dst channel" , dst)
cv2.waitKey()
실행 결과
bgr 자료형: <class 'tuple'> <class 'numpy.ndarray'> <class 'numpy.uint8'>
bgr 원소개수: 3
반응형
'영상처리 프로그래밍 > OpenCV-Python' 카테고리의 다른 글
관심 영역(ROI) (0) | 2022.11.16 |
---|---|
논리(비트) 연산 (0) | 2022.11.16 |
OpenCV Python 영상 파일 I/O 처리 (2) | 2022.10.06 |