라벨이 ROI인 게시물 표시

[opencv-python] ROI를 이용한 이미지 합성

이미지
ROI를 이용한 이미지 합성 logo 이미지를 background 이미지 정중앙에 합성하는 예제를 알아보겠습니다. 2개의 이미지 불러오기 import cv2 background = cv2.imread( "image/bit_test.jpg" ) logo = cv2.imread( "image/logo.jpg" ) cv2.imshow( "background" , background) cv2.imshow( "logo" , logo) cv2.waitKey() ROI 영역 설정에 사용할 mask 생성 gray_logo = cv2.cvtColor(logo , cv2.COLOR_BGR2GRAY) _ , mask_inv = cv2.threshold(gray_logo , 10 , 255 , cv2.THRESH_BINARY_INV) cv2.imshow( "mask_inv" , mask_inv) cv2.waitKey() cv2.cvtColor(logo, cv2.COLOR_BGR2GRAY) Notes Color-space를 변환하는 함수. cv2.COLOR_BGR2GRAY를 통해 컬러인 logo 이미지를 gray 이미지로 변환합니다. BGR to GRAY cv2.threshold(gray_logo, 10, 255, cv2.THRESH_BINARY_INV) Notes 임계값(thresh)를 넘으면 임계값을 넘었을 때 적용할 value(maxval)로 값을 변경하는 함수. cv2.THRESH_BINARY_INV를 통해 이미지를 이진화 합니다. (흑(0)과 백(255)으로 분리) # binary image INV(inverse)가 사용되었음으로 분리된 흑과 백을 반대로 변경 합니다 (흑->백, 백->흑) # binary_inverse image cv

[opencv-python] 마우스 클릭으로 ROI 영역 추출하기

이미지
ROI 영역을 추출하는 예제를 알아보겠습니다. 이미지 불러오기 import  cv2 # ROI 좌표를 저장할 list points = list () img = cv2.imread( "image/cat.jpg" ) cv2.namedWindow( 'img' ) cv2.setMouseCallback( 'img' , on_mouse) cv2.imshow( "img" , img) cv2.setMouseCallback(windowName, callback, param=None) Notes Mouse Event를 확인하고 Callback을 호출하는 함수입니다. windowName이 img인 윈도우에서 마우스 이벤트가 발생하면 on_mouse 함수가 호출됩니다. Mouse Event 함수 선언 def on_mouse (event , x , y , flags , param ):       if event == cv2.EVENT_LBUTTONDOWN:          points.append([x , y])           print (points) on_moise(event, x, y, flags, param) 마우스 이벤트 발생시 호출될 함수를 정의합니다. cv2.EVENT_LBUTTONDOWN 왼쪽 마우스 버튼을 누르고 있을 때 발생 points.append([x, y]) 왼쪽 마우스 버튼을 누를 때의 좌표를 points에 저장합니다. 이미지 ROI 설정 while True :       if len (points) == 2 :         x = points[ 0 ][ 0 ]         y = points[ 0 ][ 1 ]         ROI = img[y:points[ 1 ][ 1 ] , x:points[ 1 ][ 0 ]]          break