OpenCV

OpenCV 이미지에 도형 그리기

728x90

이미지 위에 선, 문자 얹기 입니다.

라이브러리 임포트 및 사진 꺼내기

import cv2
import numpy as np

image = cv2.imread('data/images/mark.jpg')

cv2.imshow("img", image)

데헷

눈 위에 선을 그어줄겁니다.

imageLine = image.copy()
cv2.line(imageLine,
        (322,179),
        (400,183),
        (0,0,255), 
        thickness=2, 
        lineType=cv2.LINE_AA)
#선 시작, 끝(좌표), 색, 굵기, 선 표현 법
cv2.imshow("image Line", imageLine)

원그리기!

imageCircle = image.copy()

cv2.circle(imageCircle,
            (350,200),
            150,
            (255,0,0),
            thickness=2, 
            lineType=cv2.LINE_AA)
#원의 중심, 반지름, 선의 색, 굵기, 선 표현법
cv2.imshow("image circle", imageCircle)

 

타원 그리기

# #타원그리기
imageEllipse = image.copy()

cv2.ellipse(imageEllipse,
            (300,200),
            (100,170),
            45,
            0,
            360,
            (255,0,0),
            thickness=2, 
            lineType=cv2.LINE_AA)       
cv2.ellipse(imageEllipse,
            (300,200),
            (100,170),
            135,
            0,
            360,
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA)  
#타원의 중심, 각 장축과 단축의 1/2길이, 타원의 기울기 각도, 타원 호를 그리는 시작 각도,
#타원 호를 그리는 끝 각도, 선 색깔, 두께, 선 표현법

cv2.imshow("image", imageEllipse)  

 

박스 그리기

imageRectangle = image.copy()
cv2.rectangle(imageRectangle, 
            (208,55),
            (450,355),
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA)  
cv2.imshow("image", imageRectangle) 
#좌측상단 꼭지점, 우측 하단 꼭지점 , 색, 두께, 선 표현법

 

글자넣기

imageText = image.copy()
cv2.putText(imageText,
            "Mark Zucurbug",
            (205,50),
            cv2.FONT_HERSHEY_SIMPLEX,
            1,
            (1,255,0),
            2)
# 위치, 폰트, 폰트크기, 색, 굵기
cv2.imshow("image", imageText) 

 

문자와 박스 같이 넣기

imageMultiple = image.copy()
cv2.rectangle(imageMultiple, 
            (208,55),
            (450,355),
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA) 
cv2.putText(imageMultiple,
            "Mark Zucurbug",
            (205,50),
            cv2.FONT_HERSHEY_SIMPLEX,
            1,
            (1,255,0),
            2)
cv2.imshow("image", imageMultiple) 

 

cv2.waitKey(0)
cv2.destroyAllWindow()

아무 키나 눌러서 창 닫기

 

 

 

 

 

 

import cv2
import numpy as np

image = cv2.imread('data/images/mark.jpg')

cv2.imshow("img", image)

#선그리기
imageLine = image.copy()
cv2.line(imageLine,
        (322,179),
        (400,183),
        (0,0,255), 
        thickness=2, 
        lineType=cv2.LINE_AA)
#선 시작, 끝, 색, 굵기
cv2.imshow("image Line", imageLine)


#원그리기
imageCircle = image.copy()

cv2.circle(imageCircle,
            (350,200),
            150,
            (255,0,0),
            thickness=2, 
            lineType=cv2.LINE_AA)
cv2.imshow("image circle", imageCircle)

# #타원그리기
imageEllipse = image.copy()

cv2.ellipse(imageEllipse,
            (300,200),
            (100,170),
            45,
            0,
            360,
            (255,0,0),
            thickness=2, 
            lineType=cv2.LINE_AA)       
cv2.ellipse(imageEllipse,
            (300,200),
            (100,170),
            135,
            0,
            360,
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA)  

cv2.imshow("image", imageEllipse)            


#사각형 그리기
imageRectangle = image.copy()
cv2.rectangle(imageRectangle, 
            (208,55),
            (450,355),
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA)  
cv2.imshow("image", imageRectangle) 

#글자 넣기
imageText = image.copy()
cv2.putText(imageText,
            "Mark Zucurbug",
            (205,50),
            cv2.FONT_HERSHEY_SIMPLEX,
            1,
            (1,255,0),
            2)
cv2.imshow("image", imageText) 

###
imageMultiple = image.copy()
cv2.rectangle(imageMultiple, 
            (208,55),
            (450,355),
            (0,0,255),
            thickness=2, 
            lineType=cv2.LINE_AA) 
cv2.putText(imageMultiple,
            "Mark Zucurbug",
            (205,50),
            cv2.FONT_HERSHEY_SIMPLEX,
            1,
            (1,255,0),
            2)
cv2.imshow("image", imageMultiple) 

cv2.waitKey(0)
cv2.destroyAllWindow()
728x90

'OpenCV' 카테고리의 다른 글

Threshold 흐린걸 진하게  (0) 2021.04.20
OpenCV 2 Video read/write  (0) 2021.04.18
OpenCV 데이터 타입 변환입 변환  (0) 2021.04.15
OpenCV 이미지 crop 하기  (1) 2021.04.15
OpenCV 읽고 저장하고 표시하기  (0) 2021.04.15