반응형
1. Import Library
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
2. Open the File
# 색감이 이상하게 나옴
imgBGR = cv2.imread('./data/apples.jpg')
plt.axis('off')
plt.imshow(imgBGR)
plt.show()
# RGB로 변환해서 열어주어야 함
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)
plt.axis('off')
plt.imshow(imgRGB)
plt.show()
# 그레이스케일
imgGray = cv2.imread('./data/apples.jpg', cv2.IMREAD_GRAYSCALE)
plt.axis('off')
plt.imshow(imgGray, cmap='gray')
plt.show()
3. Info of img
# dimension
imgRGB.ndim
# data shape
imgRGB.shape
# size
imgRGB.size
# datatype
imgRGB.dtype
Cf. info 관련 참고사항
4. Mask copy
- ROI(Region of Interest) : 관심영역, 영상에서 특정 연산을 수행하고자 하는 임의의 부분 영역
- 마스크 연산 : 일부 함수*에 대해 ROI 연산을 지원하며, 마스크 영상을 인자로 함께 전달해야 함
- 일부 함수* : cv2.copyTo(), cv2.calcHist(), cv2.bitwise_or(), cv2.matchTemplate(), etc.
- 마스크 영상은 cv2.CV_8UC1 타입(그레이스케일 영상)
# 원본
src = cv2.imread('./data/airplane.bmp', cv2.IMREAD_COLOR)
plt.imshow(src)
# 마스크
mask = cv2.imread('./data/mask_plane.bmp', cv2.IMREAD_GRAYSCALE)
plt.imshow(mask, cmap='gray')
# 붙여넣을 곳(영상)
dst = cv2.imread('./data/field.bmp', cv2.IMREAD_COLOR)
plt.imshow(dst)
# 카피
plt.imshow(cv2.copyTo(src, mask, dst))
5. Drawing
- line, rectangle, circle, polylines, putText
# line, rectangle, circle, polylines, text
import numpy as np
img = np.full((400, 400, 3), 255, np.uint8)
cv2.line(img, (50, 50), (200, 50), (0, 0, 225), 5)
cv2.line(img, (50, 60), (150, 160), (0, 0, 128))
cv2.rectangle(img, (50, 200, 150, 100), (0, 255, 0), 2)
cv2.rectangle(img, (70, 220), (180, 280), (0, 128, 0), -1)
cv2.circle(img, (300, 100), 30, (255, 255, 0), -1, cv2.LINE_AA)
cv2.circle(img, (300, 100), 60, (255, 0, 0), 3, cv2.LINE_AA)
pts = np.array([[250, 200], [300, 200], [350, 300], [250, 300]])
cv2.polylines(img, [pts], True, (255, 0, 255), 2)
text = 'Hello, Crazy Deep Learning ' + cv2.__version__
cv2.putText(img, text, (50, 350), cv2.FONT_HERSHEY_COMPLEX_SMALL, 0.8,
(0, 0, 255), 1, cv2.LINE_AA)
plt.imshow(img);
반응형
'Data Science > OpenCV' 카테고리의 다른 글
OpenCV - Filtering (0) | 2022.01.03 |
---|---|
OpenCV - VideoCapture, VideoWriter (0) | 2022.01.03 |
댓글