当前位置:网站首页>opencv(12):cv::rectangle学习与代码演示,使用opencv画矩形/矩形框
opencv(12):cv::rectangle学习与代码演示,使用opencv画矩形/矩形框
2022-07-19 07:44:00 【biter0088】
1 cv::rectangle介绍
1.1 功能:
绘制一个简单的、粗的或填充的直角矩形或直角矩形框。
1.2 c++代码形式
rectangle() [1/2]
#include <opencv2/imgproc.hpp>
void cv::rectangle ( InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
img 图像。
pt1 矩形的顶点。
pt2 与 pt1 相对的矩形的顶点。意思是pt1和pt2是对角顶点
color 颜色或亮度(灰度图像)。
thickness 构成矩形的线条的厚度。负值,如 FILLED、-1,意味着函数必须绘制一个填充的矩形。
lineType 线的类型。
shift 点坐标中的小数位数,一般取0,因为像素一般都是整型值。
rectangle() [2/2]
#include <opencv2/imgproc.hpp>
#include <opencv2/core/types.hpp>//针对第二个参数rec
void cv::rectangle ( Mat & img,
Rect rec,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
其中第二个参数rec代表矩形边框,且有:typedef Rect2icv::Rect ,示例如下:
//Rect(int a,int b,int c,int d)a,b为矩形的左上角坐标,c,d为矩形的长和宽
Rect rec1;
rec1=Rect(10,10,5,5);
1.3 python代码形式
cv.rectangle( img, pt1, pt2, color[, thickness[, lineType[, shift]]] )
参数参考1.2
2 c++代码演示:
cv_rectangle_test.cpp
2.1 演示1
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
using namespace cv;
int main( int argc, char** argv )
{
cv::Scalar color,color1;
color[0]=0;color[1]=0;color[2]=255;// 红色
color1[0]=0;color1[1]=255;color1[2]=0;//绿色
cv::Mat image = cv::Mat::zeros(cv::Size(20, 20), CV_8UC3);
cv::rectangle(image,cvPoint(9,9),cvPoint(9,9),color1,1,1,0);//两个顶点相同,画一个点
cv::rectangle(image,cvPoint(10,10),cvPoint(19,19),color,1,1,0);//矩形的两个顶点,两个顶点都包括在矩形内部
cv::namedWindow("image", cv::WINDOW_NORMAL);
cv::imshow("image",image);
cv::waitKey(0);
}
代码执行效果:
2.2 演示2
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <opencv2/core/types.hpp>//针对第二个参数rec
#include <iostream>
using namespace cv;
int main( int argc, char** argv )
{
cv::Scalar color,color1;
color[0]=0;color[1]=0;color[2]=255;// 红色
color1[0]=0;color1[1]=255;color1[2]=0;//绿色
cv::Mat image = cv::Mat::zeros(cv::Size(20, 20), CV_8UC3);
// cv::rectangle(image,cvPoint(9,9),cvPoint(9,9),color1,1,1,0);//两个顶点相同,画一个点
// cv::rectangle(image,cvPoint(10,10),cvPoint(19,19),color,1,1,0);//矩形的两个顶点,两个顶点都包括在矩形内部
Rect rec1;
rec1=Rect(10,10,5,5);
cv::rectangle(image,rec1,color,1,1,0);//矩形的两个顶点,两个顶点都包括在矩形内部
cv::namedWindow("image", cv::WINDOW_NORMAL);
cv::imshow("image",image);
cv::waitKey(0);
}
参考:
opencv draw OpenCV: Drawing Functions
边栏推荐
猜你喜欢
The El input input box needs to support multiple inputs
基于MATLAB的无限脉冲响应数字滤波器的设计与仿真
20220710 leetcode week: move the clip to get the string
中文同义句在线转换器 - 中文同义句转换器软件
Movinets series models are good helpers for real-time classified videos on mobile phones
如何找实习工作?怎么准备?
DAP+ESB数据仓库构建过程说明
Why can't you restore your favorites by copying 360bookmarks to your new computer? Because it's encrypted, you can use 360sefav_ Date Favdb and 360default_ ori_ Date Favdb two favorite backup files im
Big programmers' daily work | daily anecdotes
Harmonic detection and modeling of three-phase circuit based on GUI and Simulink
随机推荐
Software testing - learning notes 4
JSON. Parse error when parse occurs \n
Cloud Foundry 开发者之课程 (LFD232) 2.Getting Started
Resolved (selenium reports an error) attributeerror: 'webdriver' object has no attribute 'execute_ cdp_ cmd‘
小白学习MySQL - Generated Columns功能
Redis e-commerce spike design
DOM系列之样式属性操作
2022 electrician (elementary) operation certificate examination questions and answers
爬虫初级知识点(1)
leetcode-11 盛水最多的容器(双指针,lower_bound, upperbound)
文件上传漏洞(一)
文件、异常、模块
基于MATLAB的无限脉冲响应数字滤波器的设计与仿真
风格迁移篇--- stargan代码详解以及论文解读翻译
transformers中BertPreTrainedModel使用说明
Favorite address and historical address of 360 browser
redis电商秒杀设计
结合GUI和simulink的三相电路谐波的检测与建模
五相永磁电机PWM控制系统研究
产品经理必不可少的证书!