OpenCV로 Aspect Ratio 시각화해보기OpenCV/OpenCV 강좌2023. 10. 10. 19:46
Table of Contents
반응형
OpenCV의 트랙바를 사용하여 Aspect Ratio를 시각화해봅니다. 트랙바는 실수를 지원하지 않기 때문에 변화되는 값을 배열에 저장한 후, 트랙바를 움직여 얻은 값을 배열의 인덱스로 사용했습니다.
2023. 10. 9 최초작성
실행결과입니다. aspect ratio가 1이면 정사각형이 되며, aspect ratio가 1보다 작으면 세로로 긴 사각형, aspect ratio가 1보다 크면 가로로 긴 사각형이 됩니다. 아래 이미지에서 왼쪽은 aspect ratio가 0.3인 경우이며, 중앙은 aspect ratio가 1.0인 경우이며 오른쪽은 aspect ratio가 2.0인 경우입니다.
전체 소스코드입니다.
import cv2 import numpy as np def change_value(v): global img img = img_origin.copy() if aspect_ratio[v] <= 1: rectangle_w = 100 rectangle_h = int(rectangle_w/aspect_ratio[v]) else: rectangle_h = 100 rectangle_w = int(rectangle_h*aspect_ratio[v]) x = int((image_w-rectangle_w)*0.5) y = int((image_h-rectangle_h)*0.5) cv2.rectangle(img, (x,y), (x+rectangle_w, y+rectangle_h), (0, 255, 255), -1) cv2.putText(img, str(round(aspect_ratio[v],2)) + ' ' + f'w={rectangle_w} h={rectangle_h}', (10,50), cv2.FONT_HERSHEY_PLAIN, 2, (0,255,0), 2) img = None img_origin = np.zeros((700,700,3), dtype=np.uint8) image_h,image_w,_ = img_origin.shape aspect_ratio = np.arange(0.1, 3.3, 0.1) print(aspect_ratio) cv2.namedWindow('test_window') cv2.createTrackbar('aspect ratio', 'test_window', 1, len(aspect_ratio)-1, change_value) cv2.setTrackbarPos('aspect ratio', 'test_window', 9) change_value(9) while True: cv2.imshow('test_window', img) key = cv2.waitKey(1) if key == 27: break |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
동영상 파일을 RTSP 스트리밍하기 (0) | 2023.10.10 |
---|---|
fps 표시 및 동영상 파일 저장하며 webcam 영상 보여주는 OpenCV C++ 예제 코드 (0) | 2023.10.10 |
4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제 (0) | 2023.10.08 |
OpenCV Python – 이미지 연결하는 hconcat, vconcat 예제 (0) | 2023.10.08 |
OpenCV Python – fps 출력하는 Webcam/Video File 기본 예제 코드 (0) | 2023.10.08 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!