이번 포스팅에서는 opencv 함수를 이용하여 그림 그리기 및 글자 쓰는 방법에 대해 알아보도록 하겠습니다.
먼저 그림 그리기에 앞서 그림을 그릴 도화지를 준비 해야겠죠?
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) 도화지 준비](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
아래와같이 500x 500x 3 shape의 하얀색 배경을 만들었습니다.
흰색 배경을 사용하는데 굳이 컬러 채널인 3채널을 이용한 이유는 추후 그림을 그릴때 사용되는 컬러를 입력받기 위해서 입니다.
1. 선그리기(cv2.line)
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
선은 cv2.line함수를 이용합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2번째, 3번째 인자에 들어간 튜플 값은 두 점의 좌표를 의미합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
4번째 인자에 들어간 값은 컬러를 의미하는데요. B G R 순서로 설정되어있습니다.
우리 예시에서는 R 에 255가 채워졌으니까 도화지상에 빨간색 선이 그려진걸 알 수 있습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 1. 선그리기(cv2.line)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
마지막 인자에 들어간값은 선 굵기를 의미하고 5px로 하겠다는 의미 입니다.
만약 해당 인자를 지정해주지 않으면 디폴트로 1px가 적용됩니다.
2. 사각형 그리기(rectangle)
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) 사각형 그리기](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/IRjd0/btrK8gis6fr/4kzlfHxMPio9yD47FFRLfK/img.png)
두번째 인자에 들어간 튜플 (50, 200, 150, 100) 에서 50, 200은 사각형 좌상단의 x축, y축 좌표를 의미하고,
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/bwphUB/btrK5DyIK7c/m6gMX8gS412Lyv4JKYTVak/img.png)
150, 100은 사각형의 width, height를 의미합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/dmkBsW/btrK5DZPmlW/BowDexFUiMHe2xL2NwkY61/img.png)
이 방법 외에도 아래와 같이 좌표를 두개로 쪼개서 적어줄 수도 있는데요.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/tNVC1/btrK6QqMpFp/CtJ5YWMQHGI86Kq3SqHkD0/img.png)
(50, 200)은 이전과 마찬가지로 사각형의 좌상단 좌표,
(200, 300)은 width, height가 아닌 우하단 좌표를 가리킵니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/bsgw3O/btrK6cAPXsU/y9KDtd0jPOEJmqnUUUtEI0/img.png)
4번째 인자에 들어간 튜플은 컬러를 의미하는데요
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/bqiP9o/btrK2txqLiC/8ow2DHL3x20Fm2d7vLpS10/img.png)
B G R순서에서 G가 255이니까 초록색 그림이 그려집니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/cnu4lv/btrK6BtH1Jt/19mmGtz0peOMXXWgEhD0bk/img.png)
마지막에 위치한 5는 선두께 5px을 의미합니다.
참고로 두께가 -1로 주게되면
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/bparCa/btrK8gbGK8b/WaGLyKOrmKokBhW2wyIJa0/img.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 2. 사각형 그리기(rectangle)](https://blog.kakaocdn.net/dn/trQlC/btrK4EZp7rc/49pWkshLEKRBJBxWfmsgj1/img.png)
해당 도형을 채우는 형태로 출력이 됩니다.
3. 원 그리기(circle)
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/bDzrmL/btrLael2fqC/sB6xZ3SMtdo5xMN3gCUkZK/img.png)
두번째 인자로 들어가있는 튜플 (200, 200)은 원의 중심 좌표를 의미합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/czJbln/btrLawmrkPI/A6Q006JW2sC28SMFhlnYAK/img.png)
세번째 인자로 들어가있는 30은, 원의 반지름 길이를 의미합니다.
나머지부분은 컬러와 , 두께를 의미합니다.
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/mLfP5/btrLectuRcB/oATmWJPezlrnkRk8pmHYy0/img.png)
약간 원이 자글자글한 느낌이 있는데 우리가 직접 입력하지는 않았지만 디폴트로 설정(cv2.LINE_8)되어있는 값이 있기 때문인데요.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/dt2a80/btrLbMa83KA/qjAHf8TejZ8P43cFyruSkk/img.png)
해당 부분을 cv2.LINE_AA로 수정해주면 보다 스무스한 원을 구현할 수 있습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/cMQ6rv/btrLak7wWdj/Yt32KHFkODcqERpZrAQw31/img.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 3. 원 그리기(circle)](https://blog.kakaocdn.net/dn/t4J1K/btrK9yFb1N5/5m59u7XsWa0aZlSavTe620/img.png)
4. 다각형 그리기(polylines)
이번에는 아래와 같은 다각형을 그려보겠습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines)](https://blog.kakaocdn.net/dn/3677Z/btrLb43MQnB/ll6QE8oP5uAZ97sMDrC4V1/img.png)
먼저 그리고 싶은 다각형의 꼭지점 좌표들을 numpy ndarray 형태로 만들어줍니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines)](https://blog.kakaocdn.net/dn/ARBvd/btrK9zjPlb7/XAKTZjABuzTzyzk7UohIo1/img.png)
그리고 앞서 좌표가 적힌 array를 리스트형태로 두번째 인자에 넣어줍니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines)](https://blog.kakaocdn.net/dn/boHUsE/btrLaUN8hT4/As8FhdMtakY7cMG6yu9mNK/img.png)
3번째 인자로 들어간 boolean값은 마지막 좌표와 첫번째 좌표를 이어줄지 말지를 결정하는 것인데요. 만약 False로 지정한다면, 아래와 같은 형태로 그려지겠죠.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines) [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 4. 다각형 그리기(polylines)](https://blog.kakaocdn.net/dn/LJNBr/btrLaUUWeiz/WLvGOGRvbLkn0RquCCCdf1/img.png)
나머지 부분은 마친가지로 컬러와 두께를 의미합니다.
5. 글자 넣기(putText)
1) 문자열 텍스트
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 1) 문자열 텍스트 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 1) 문자열 텍스트](https://blog.kakaocdn.net/dn/bn1fI8/btrLa4C7bCa/xbpiFmHA735y8ocHi3fmH0/img.png)
두번째 인자에 우리가 출력하고 싶은 문자열 텍스트를 넣어줍니다.
2) text 좌표지정
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 2) text 좌표지정 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 2) text 좌표지정](https://blog.kakaocdn.net/dn/nW6NM/btrK94qjeoG/0waiIJOttyLp2EoTVFXT7k/img.png)
세번째 튜플은 글자의 좌측 하단 좌표를 가리킵니다.
그림으로 표시하면 아래와 같습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 2) text 좌표지정 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 2) text 좌표지정](https://blog.kakaocdn.net/dn/cHYNXn/btrK90hhVdj/bLVAZ58bAGYsgiMtn1Yiek/img.png)
3) font지정
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 3) font지정 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 3) font지정](https://blog.kakaocdn.net/dn/poLl9/btrLb5n6Ri1/g6ewEHIHTpbDtHSdClNQAK/img.png)
4번째 인자는 글자의 폰트를 지정해주는 부분인데요.
opencv에서 기본 제공하는 폰트는 아래와 같습니다.(한글에는 적용이 안됨)
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 3) font지정 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 3) font지정](https://blog.kakaocdn.net/dn/ctTstF/btrLadglxAM/PyuVXuOvBlSUy7g83nrEu0/img.png)
4) font 크기
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 4) font 크기 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 4) font 크기](https://blog.kakaocdn.net/dn/maDJG/btrLcJrzn8c/cWTax1USzkuMYN4GSRsmKK/img.png)
5번째 인자에 들어가는 값은 font크기를 조절하는 부분인데요. 1을 기준으로 크면 글자가 커지고 1보다 작아지면 작아진다라고 이해하시면 됩니다.
나머지는 앞서 설명했듯이 컬러와 글자 두께를 의미하고, cv2.LINE_AA는 원그리기에게서 설명했듯이, 글자를 더 매끄럽게 표현해주기 위해 사용 되었다고 보시면 됩니다.
5) 한글 사용 하는 방법
지금까지 배운 방식으로 한글 text를 출력하려고 하면 아래와같이 ??????가 출력됩니다.
opencv에서는 한글을 지원해주지 않기 때문입니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bHeyPf/btrLadAH1mN/qigLmU4MTy2WwfMOIAjktk/img.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/Mzg1H/btrLb6m1grH/Up7yYmZ7CtYijeK03dYM80/img.png)
이 문제를 pillow를 통해 해결해보도록 하겠습니다.
(1) pillow 설치
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/Up0oz/btrK90Imrk7/FfFcvS0h6L7ZU1LsbbjGU0/img.png)
(2) 필요한 모듈 import
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bMwRoj/btrLe0GwlmT/zteC1FJOmgOKQNzh0wlDAk/img.png)
(3) 사용하고 싶은 font 가져오기
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/lUwDM/btrK90O7lei/shfzUxluEMpP6nccbFzPOK/img.png)
저는 fonts라는 디렉토리를 생성하고 그 안에 마루부리 폰트를 설치하여 넣어 놨는데요.
(해당 폰트는 링크에서 다운 받을 수 있습니다.)
아래와 같은 방법으로 우리가 사용할 폰트의 경로를 첫번째 인자에 넣어줌으로써 해당 폰트를 사용할 수있게 됩니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bncnOn/btrLvKqikwF/2GEGYebW7GQl84XvZjA8d0/img.png)
두번째 인자에 들어가있는 20은 해당 폰트의 크기를 의미합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/mFyCq/btrLwIsfh0s/DXOIH53KYDYJmhduakJIzK/img.png)
(4) 도화지 타입 변경
이제 지정한 폰트를 도화지에 그려줘야 할 차례입니다.
그런데 기존 도화지는 넘파이 array로, pillow로 제작한 폰트를 사용할 수 없습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/1WZMz/btrLqXq7Ak6/wzMRSK0QDmZZQLlr5EcVQK/img.png)
그렇기에 아래와 같은 방식으로 numpy array의 타입을 변경해줘야 합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bMisQ9/btrLovhlEpr/onMfPl4n5wPN05hBKf33Yk/img.png)
실제로 타입이 변경된걸 확인 할 수 있습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/vZMPg/btrLu2kq6z2/ueJqbf6QyNk12cvxnpxVf0/img.png)
다음으로 img_pil 객체를 ImageDraw.Draw()인자 안에 넣어주는 형태로 draw란 새로운 객체를 생성합니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/dX5ezL/btrLtKSjKgq/JPhchHh2bayKopbMfk1Yok/img.png)
생성한 draw객체를 이용해서 글자를 적을 수 있습니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bwheHx/btrLu1FOaou/7Y5ly3lo5MBS8ya5kbm9Vk/img.png)
먼저 첫번째 인자에 있는 튜플값은 텍스트의 좌하단좌표 값을 의미합니다.
두번째 인자는 사용할 텍스트를 넣는자리,
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/bINnBD/btrLuyKDSfR/nubeQYwDmt1ZBssan1v52K/img.png)
세번째는 컬러
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/byEQwJ/btrLx1LQMtf/ueHQXiacnZ4COjoja1uLqk/img.png)
마지막 부분은 우리가 지정한 font를 넣는 자리입니다.
마지막으로 cv2.imshow()로 이미지를 띄워주기 위해 pillow image객체로 변경한 것을 다시 ndarray형태로 변경해줍니다.
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/mqYAa/btrLnsSuEZN/S5ciYCdUG3YMFXdmgJS881/img.png)
output:
![[opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법 [opencv] 그림 그리기 | 글자 쓰는 법 (+ 한글 사용 방법) - 5. 글자 넣기(putText) - undefined - 5) 한글 사용 하는 방법](https://blog.kakaocdn.net/dn/ct8wve/btrLuw6769O/ncHosaC266qoB5gXQlaQ10/img.png)
'머신러닝,딥러닝 > opencv' 카테고리의 다른 글
[파이썬 opencv] 오픈 cv에서 yolov3 사용하는 방법 (2) | 2022.10.26 |
---|---|
[파이썬 opencv] 오픈 cv에서 detection model 실행하는 방법 (0) | 2022.10.21 |
[오픈 cv] 트랙바란? 트랙바 사용방법(for opencv 초보자) (0) | 2022.09.14 |
[파이썬 opencv] 두 이미지 합치는 방법(with 크기 다른 이미지) (0) | 2022.09.13 |
[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 (0) | 2022.08.30 |
댓글