前言:
本專欄主要結合OpenCV4,來實作一些基本的影像處理操作、經典的機器學習演算法(比如K-Means、KNN、SVM、決策樹、貝葉斯分類器等),以及常用的深度學習演算法,
系列文章,持續更新:
- OpenCV4機器學習(一):OpenCV4+VS2017環境搭建與配置
- OpenCV4機器學習(二):影像的讀取、顯示與存盤
- OpenCV4機器學習(三):顏色空間(RGB、HSI、HSV、Lab、Gray)之間的轉換
- OpenCV4機器學習(四):影像的幾何變換、仿射變換
一、基本介紹
在處理影像任務中,比如目標檢測,通常想會將檢測到的結果通過框和文字的形式顯示出來,剛好OpenCV庫就提供了這樣的一些函式,不僅提供兩個在影像上添加文字的putText()函式,還提供了多個圖形繪制函式,比如cicle()、ellipse()、rectangle()、line()函式等,分別用來繪制圓形、橢圓形、矩形框和直線,
二、函式解釋
1、putText() 文字標注函式
putText() 函式可以在源影像指定位置加上文字注釋,函式定義如下:
void cv::putText(InputOutputArray img, //輸入影像
const String & text, //添加的文字
Point org, //插入字符在影像中的左上角位置
int fontFace, //字體型別
double fontScale, //字體大小比例因子
Scalar color, //字體顏色
int thickness = 1, //字體粗細
int lineType = LINE_8, //字體線條型別
bool bottomLeftOrigin = false) //默認為false,影像資料原點在左上角;當為true時,影像資料原點在左下角,
2、rectangle() 繪制矩形框函式
rectangle() 函式可以繪制矩形框,其函式定義如下:
void cv::retangle(Mat &img, //輸入影像
Rect rec, //Rect 型別的矩形框變數
const Scalar & color //矩形框顏色
int thickness = 1, //線條粗細
int lineType = LINE_8, //線段型別
int shift = 0) //點坐標中的小數位數
三、代碼實作
下面,我們來實作對特定目標的文字標注和矩形框:
#include<iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat srcImg, dstImg;
srcImg = imread("D:\\Project\\VSProject\\OpenCV4\\data\\cat.jpg", 1); // size = 036x584
int left = 498, top = 272, width = 100, height = 100;
Rect rect1(left, top, width, height); //指定矩形區域的左上角和矩形長、寬
rectangle(srcImg, rect1, Scalar(0, 255, 0), 2); //畫矩形框
putText(srcImg, "eye", Point(498, top-10), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 255, 255), 2, 3); //標注文字
namedWindow("顯示", WINDOW_AUTOSIZE); //WINDOW_NORMAL
imshow("顯示", srcImg);
waitKey(0);
return 0;
}
最終顯示:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297497.html
標籤:AI
上一篇:Pytorch與深度學習 —— 8. 什么是回圈神經網路(Recurrent Neural Network)
下一篇:資料結構之樹以及二叉樹的相關概念
