Murtaza's Workshop님 강의를 보고 공부한 내용입니다.
openCV의 x축의 증가 방향은 오른쪽이지만, y축의 증가 방향은 위쪽이 아닌 아래쪽
import cv2
# reading image
img = cv2.imread("resources/chiiro.jpg")
print(img.shape)
cv2.imshow("output_img", img)
cv2.waitKey(0)
순서대로 height, width, #channels (in this case, BGR)입니다.
openCV의 resize()
함수를 이용해서 바꿔줍니다.
import cv2
# reading image
img = cv2.imread("resources/chiiro.jpg")
print(img.shape)
imgResize = cv2.resize(img, (300, 300))
cv2.imshow("output_img", img)
cv2.imshow("resize Image", imgResize)
cv2.waitKey(0)
크롭은 읽어들인 이미지를 python의 인덱스 슬라이싱과 같은 개념으로 잘라줍니다.
import cv2
# reading image
img = cv2.imread("resources/chiiro.jpg")
print(img.shape)
#Crop Image -> height, width
imgCropped = img[0:200, 200:500]
cv2.imshow("output_img", img)
cv2.imshow("crop Image", imgCropped)
cv2.waitKey(0)
numpy의 zeros()함수를 이용해서 까만 배경이미지를 만들고, 그 위에 컬러링하기
import cv2
import numpy as np
img = np.zeros((512, 512, 3))
img[200:300, 100:250] = 255,0,0
cv2.imshow("Image", img)
cv2.waitKey(0)
이미지 위에 그림을 그리는 함수는 선, 사각형, 원에 따라 각각 line()
, rectangle()
, circle()
함수를 사용합니다.
import cv2
import numpy as np
img = np.zeros((512, 512, 3))
#draw line
cv2.line(img, (0,0), (img.shape[1],img.shape[0]), (0,255,0), 3)
#draw rectangle
cv2.rectangle(img, (0,0), (250,350), (0,0,255), 3)
#draw circle
cv2.circle(img, (400,50), 30, (255, 255, 0), 5)
cv2.imshow("Image", img)
cv2.waitKey(0)
import cv2
import numpy as np
img = np.zeros((512, 512, 3))
cv2.putText(img, " OPENCV ", (200,200), cv2.FONT_ITALIC, 1, (0,150,0), 1)
cv2.imshow("Image", img)
cv2.waitKey(0)
삐뚫어진 사각형
import cv2
import numpy as np
img = cv2.imread("resources/card.jpg")
width, height = 250, 350
pts1 = np.float_32([[111,219], [287,188], [154,482], [352,440]])
pts2 = np.float_32([[0,0], [width, 0], [0, height], [width, height]])
matrix = cv2.getPrespectiveTransform(pts1, pts2)
imgOutput = cv2.warpPerspective(img, matrix, (width, height))
cv2.imshow("Image", img)
cv2.imshow("output", imgOutput)
cv2.waitKey(0)
import cv2
import numpy as np
img = cv2.imread('resources/chiiro.jpg')
imgHor = np.hstack((img, img))
imgVer = np.vstack((img, img))
cv2.imshow("Horizontal", imgHor)
cv2.imshow("Vertical", imgVer)
cv2.waitKey(0)