반응형

촬영된 영상이나 사진찍힌 이미지의 특정부분을 도려내고 편집할 경우 필요하다

또는 특정영역만 뽑아내서 이미지프로세싱할 경우 필요하다.

 

그전에 알아두어야 할 사항은 파이썬의 OpenCV에서 출력하는 영상의 구조는 아래와 같다.

수학에서 사용하는 왼쪽하단의 원점이 아닌, 왼쪽 상단부터 우측하단까지 좌표를 0~max로 둔다.

원본 사진

아래 코드는 원본에서 자를 시작위치(새로운 원점)을 정하고, 그 기준으로 자를 프레임 크기를 정함.

'''
    made by 안산드레아스
    이미지 특정영역 잘라내기
    필요 패키지 : python-opencv
'''
import cv2


'''
    이미지를 자르는 함수
    :param
        img  : 이미지
        x, y : 자를곳 시작 좌표
        w, h : 자를 폭과 길이
'''
def im_trim(img, x, y, w, h):
    imgtrim = img[y: y + h, x: x + w]
    return imgtrim


# 현재경로의 이미지 불러오기
sample = cv2.imread('./0.jpg')
cv2.imshow('org', sample)

# 함수 실행하기
# 원본영상의 자를 영역 원점 x,y좌표 지정. 그리고 새로 생성할 이미지 frame크기 지정
result = im_trim(sample, 200, 200, 300, 300)
cv2.imshow('img', result)

cv2.waitKey(0)
cv2.destroyAllWindows()
반응형

결과는 아래와 같다. 이해하기 쉽게 하기 위해 원본영상과 편집된 영상을 동시에 출력시켰다.

해당 코드를 수정해서 원하는 특정부분을 잘라내고 크기를 정해 사용할 수 있다.

 

반응형

+ Recent posts