본문 바로가기

OpenCV-Python

OpenCV Python 원하는 이미지 영역 잘라내기(붙이기)

이미지 잘라내기 코드

img_cut = img[y1:y2, x1:x2]

잘라내고 싶은 특정 부분의 y값과 x값을 선언하면 그 부분만 따로 볼 수 있습니다.

- 마지막 코드 확인


이미지 붙이기

import cv2
import numpy as np

img = cv2.imread('02.jpg')
img2 = cv2.imread('03.jpg')

img_con = np.concatenate([img, img2], axis=0)
img_con2 = np.concatenate([img, img2], axis=1)

cv2.imshow('show', img_con)
cv2.imshow('show2', img_con2)
cv2.waitKey(0)

① np.concatenate((a1, a2, ...), axis = 0)

a1, a2 : 입력 배열(가로 연결 : 같은 수의 열과 같은 깊이(depth), 세로 연결 : 같은 수의 행과 같은 깊이)

axis : 0 - 가로방향 연결 / 1 - 세로방향 연결

import cv2
import numpy as np

img = cv2.imread('02.jpg')
img2 = cv2.imread('03.jpg')

img_con = cv2.vconcat([img,img2]) # axis = 0 과 결과 동일
img_con2 = cv2.hconcat([img,img2]) # axis = 1 과 결과 동일

cv2.imshow('show', img_con)
cv2.imshow('show2', img_con2)
cv2.waitKey(0)

②-1 cv2.vconcat(src[, dst]) : 가로

src : 입력 배열(같은 수의 열과 같은 깊이)

dst : 출력 배열(같은수의 열, 깊이, 그리고 행의 합을 가짐)

 

②-2 cv2.hconcat(src[, dst]) : 세로

src : 입력 배열(같은 수의 행과 같은 깊이)

dst : 출력 배열(같은수의 행, 깊이, 그리고 열의 합을 가짐)


import cv2
import numpy as np

img = cv2.imread('02.jpg')
img2 = cv2.imread('03.jpg')

# 가로 연결이기 때문에(열의 개수 일치)
img_con_1 = img[100:250, 250:450]
img_con_2 = img2[200:300, 50:250]
img_con = cv2.vconcat([img_con_1,img_con_2]) 
# img_con = np.concatenate([img_con_1,img_con_2], axis=0)

# 세로 연결이기 때문에(행의 개수 일치)
img_con2_1 = img[200:400, 270:380]
img_con2_2 = img2[150:350, 140:250]
img_con2 = cv2.hconcat([img_con2_1,img_con2_2])
# img_con2 = np.concatenate([img_con2_1,img_con2_2], axis=1)

cv2.imshow('show', img_con)
cv2.imshow('show2', img_con2)
cv2.waitKey(0)