파이썬으로 영상처리_이미지 자르기, 대칭, 회전

k_minseokVv·2024년 1월 8일
0

OpenCV - Python

목록 보기
6/13

강의 출처 : https://www.youtube.com/watch?v=XK3eU9egll8&t=19409s

이미지 자르기

- 이미지 자르기

  • 영역을 잘라 새로운 창(윈도우)에 표시
import cv2
img = cv2.imread('img.jpg')
#img.shape (427,640,3)

crop = img[100:200, 300:400] #변수명 = 사진변수명[세로위치:세로위치, 가로위치:가로위치]

cv2.imshow('img',img)
cv2.imshow('crop',crop)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 영역을 잘라 기존 윈도우(창)에 표시
import cv2
img = cv2.imread('img.jpg')
#img.shape (427,640,3)

crop = img[100:200, 300:400] #변수명 = 사진변수명[세로위치:세로위치, 가로위치:가로위치]
img[100:200, 400:500] = crop

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

- 동영상 자르기

import cv2
cap = cv2.VideoCapture('video.mp4')

# 비디오가 열려있는 동안 실행
while(cap.isOpened()):
    ret, frame = cap.read() # 비디오의 한 프레임씩 읽음
    if ret:
        crop = frame[100:300, 200:400] # 프레임을 잘라서 crop 변수에 저장

        cv2.imshow('Frame', frame)
        cv2.imshow('Crop', crop)
        
        # 'q'키를 누르면 종료
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

이미지 대칭

  • 좌우 대칭
import cv2
img = cv2.imread('img.jpg')

flip_horizontal = cv2.flip(img,1) #flipcode > 0 : 좌우대칭
cv2.imshow('img',img)
cv2.imshow('flip',flip_horizontal)     
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 상하 대칭
import cv2
img = cv2.imread('img.jpg')

flip_vertical = cv2.flip(img,0) #flipcode > 0 : 좌우대칭
cv2.imshow('img',img)
cv2.imshow('flip',flip_vertical)     
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 상하 좌우 대칭
import cv2
img = cv2.imread('img.jpg')

flip_both = cv2.flip(img,-1) #flipcode = -1 : 상하좌우대칭
cv2.imshow('img',img)
cv2.imshow('flip',flip_both)     
cv2.waitKey(0)
cv2.destroyAllWindows()

이미지 회전

  • 시계방향 90도 회전
import cv2
img = cv2.imread('img.jpg')

rotate_90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) #시계 방향으로 90도 회전

cv2.imshow('img',img)
cv2.imshow('rotate',rotate_90)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 시계 방향 180회전
import cv2
img = cv2.imread('img.jpg')

rotate_180 = cv2.rotate(img, cv2.ROTATE_180) #시계 방향으로 90도 회전

cv2.imshow('img',img)
cv2.imshow('rotate',rotate_180)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 시계 반대방향 90도 회전
import cv2
img = cv2.imread('img.jpg')

rotate_COUNTER90 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE) #시계 방향으로 90도 회전

cv2.imshow('img',img)
cv2.imshow('rotate',rotate_COUNTER90)
cv2.waitKey(0)
cv2.destroyAllWindows()
profile
C++, Python 활용 중

0개의 댓글