728x90
반응형
개발사양
OS : Windows 10
개발 언어 : C++, QT, OpenCV
카메라 : AXIS P5635 MK II PTZ
QT CMakeList.txt 에 OpenCV 라이브러리 추가
cmake_minimum_required(VERSION 3.5)
......
# OPENCV
set(OpenCV_DIR "C:/OpenCV/opencv4.5.3/build")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
......
OpenCV 가 설치된 경로로 지정하여 설정하여 줍니다.
현재 설치된 OpenCV 버전은 4.5.3 버전이 설치되어 있습니다.
OpenCV 카메라 영상 Text 입력
OpenCV 의 영상에 Text 를 입력할 수 있는 함수입니다.
void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )
img
cv::Mat 형식의 이미지 입니다.
text
이미지 위에 그려질 텍스트입니다.
org
텍스트가 그려질 이미지 위에 좌표입니다.
fontface
텍스트 폰트 타입입니다.
폰트의 종류 파라미터는 다음과 같습니다.
FONT_HERSHEY_SIMPLEX = 0, //!< normal size sans-serif font
FONT_HERSHEY_PLAIN = 1, //!< small size sans-serif font
FONT_HERSHEY_DUPLEX = 2, //!< normal size sans-serif font
// (more complex than FONT_HERSHEY_SIMPLEX)
FONT_HERSHEY_COMPLEX = 3, //!< normal size serif font
FONT_HERSHEY_TRIPLEX = 4, //!< normal size serif font
// (more complex than FONT_HERSHEY_COMPLEX)
FONT_HERSHEY_COMPLEX_SMALL = 5, //!< smaller version of FONT_HERSHEY_COMPLEX
FONT_HERSHEY_SCRIPT_SIMPLEX = 6, //!< hand-writing style font
FONT_HERSHEY_SCRIPT_COMPLEX = 7, //!< more complexvariant of FONT_HERSHEY_SCRIPT_SIMPLEX
FONT_ITALIC = 16 //!< flag for italic font
fontScale
텍스트 크기입니다.
color
텍스트의 색상입니다.
thickness
텍스트 굵기입니다.
카메라 영상 Text 출력 실습
#include <opencv2/opencv.hpp>
......
// RTSP Stream Url 로 카메라 영상 가져오기
cv::VideoCapture cap(onvif_controller_->GetStreamUrl());
if (cap.isOpened() == false)
return ;
// 영상 사이즈 확인
cv::Size size = cv::Size((int)cap.get(cv::CAP_PROP_FRAME_WIDTH), (int)cap.get(cv::CAP_PROP_FRAME_HEIGHT));
cv::Mat mat;
cap.read(mat);
// 출력할 문자열 만들기 - 카메라 이름과 현재 시간
auto strTime = QDateTime::currentDateTime().toString("yyyy.MM.dd hh-mm-ss");
std::string strText = "[";
strText += onvif_controller_->GetName();
strText += "] ";
std::string strPutText = strText + QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss").toStdString();
strText += strTime.toStdString();
// 영상에 문자열 넣기
cv::putText(mat, strPutText, cv::Point2f(size.width - 530, size.height - 20), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(128, 0, 0), 2);
// 이미지 캡쳐
if (cv::imwrite("capture\\" + strText + ".png", mat) == false)
return ;
cv::waitKey();
cap.release();
카메라 영상 Text 출력 결과
좌측 하단에 카메라 이름, 현재 시간을 출력하여 캡쳐한 이미지 입니다.
728x90
'개발 > OpenCV' 카테고리의 다른 글
카메라 영상에 실시간 Logo 이미지 합성 (0) | 2023.02.06 |
---|