줘이리의 인생적기

CV - opencv(Python) ROI, Channels 본문

공부/Computer Vision(py)

CV - opencv(Python) ROI, Channels

줘이리 2020. 7. 9. 08:00
728x90

먼저, ROI(Region of Interest) 관심영역 설정하는 방법을 알아보고 

RGB 컬러 이미지의 경우 3개의 채널을 각각 Red Channel, Green Channel, Blue Channel 이라고 하는데

각 채널들을 분리해서 값을 원하는 값으로 변경해보도록 하겠습니다.

 

1번 grayscale로 이미지를 불러온 후 채널 분리, (100,100) ~(200,200) 픽셀의 lightness 값을 255로 변경

 

2번 이미지를 불러 온 후 채널 분리, (100,100) ~(200,200) 픽셀의 lightness 값을 255로 변경

 

채널 분리 및 병합 코드 원형 설명

#채널 분리
def splitImage(image):
    return cv2.split(image)
    
#채널 병합
def mergeImage(channel1, channel2, channel3):
    return cv2.merge((channel1, channel2, channel3))

 

1번, 2번 코드

더보기
# -*- coding: utf-8 -*-
from OpenCV_Functions import *

def imageProcessing(image):
    result = imageCopy(image)
    result = convertColor(result, cv2.COLOR_BGR2HLS)#HLS색공간으로 변환
    h, l, s = splitImage(result)#각 채널 분리
    #(100,100) ~ (200,200)까지 lightness 255으로 설정
    for i in range(100, 200):
        for j in range(100, 200):
            l2 = setPixel(l, i, j, 255)
    imageShow("ex02 hls", l2, cv2.WINDOW_NORMAL)
    result = mergeImage(h, l2, s)
    result = convertColor(result, cv2.COLOR_HLS2BGR)#BGR색공간으로 변환

    return result

road_image_01 = "<이미지 경로>"
image_color = imageRead(road_image_01, cv2.IMREAD_COLOR)
result = imageProcessing(image_color)

imageShow("ex02 bgr", result, cv2.WINDOW_NORMAL)