opencv::绘制-基本几何
画线 cv::line(LINE_4\LINE_8\LINE_AA)
画椭圆 cv::ellipse
画矩形 cv::rectangle
画圆 cv::circle
画填充 cv::fillPoly
putText(bgImage, "Hello OpenCV 你好 ", Point(, ), CV_FONT_HERSHEY_COMPLEX, 1.0, Scalar(, , ), , );
void MyLines() {
Point p1 = Point(, );
Point p2;
p2.x = ;
p2.y = ;
Scalar color = Scalar(, , );
line(bgImage, p1, p2, color, , LINE_AA);
}
void MyRectangle() {
Rect rect = Rect(, , , );
Scalar color = Scalar(, , );
rectangle(bgImage, rect, color, , LINE_8);
}
void MyEllipse() {
Scalar color = Scalar(, , );
ellipse(bgImage, Point(bgImage.cols / , bgImage.rows / ), Size(bgImage.cols / , bgImage.rows / ), , , , color, , LINE_8);
}
void MyCircle() {
Scalar color = Scalar(, , );
Point center = Point(bgImage.cols / , bgImage.rows / );
circle(bgImage, center, , color, , );
}
void MyPolygon() {
Point pts[][];
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, );
const Point* ppts[] = { pts[] };
int npt[] = { };
Scalar color = Scalar(, , );
fillPoly(bgImage, ppts, npt, , color, );
}
void RandomLineDemo() {
RNG rng();
Point pt1;
Point pt2;
Mat bg = Mat::zeros(bgImage.size(), bgImage.type());
namedWindow("random line demo", CV_WINDOW_AUTOSIZE);
for (int i = ; i < ; i++) {
pt1.x = rng.uniform(, bgImage.cols);
pt2.x = rng.uniform(, bgImage.cols);
pt1.y = rng.uniform(, bgImage.rows);
pt2.y = rng.uniform(, bgImage.rows);
Scalar color = Scalar(rng.uniform(, ), rng.uniform(, ), rng.uniform(, ));
if (waitKey() > ) {
break;
}
line(bg, pt1, pt2, color, , );
imshow("random line demo", bg);
}
}
int drawRandomLines(Mat image) {
RNG rng(0xffffff);
Point pt1, pt2;
for (int i = ; i < ; i++) {
pt1.x = rng.uniform(, image.cols);
pt2.x = rng.uniform(, image.cols);
pt1.y = rng.uniform(, image.rows);
pt2.y = rng.uniform(, image.rows);
int r = rng.uniform(, );
int g = rng.uniform(, );
int b = rng.uniform(, );
line(image, pt1, pt2, Scalar(b, g, r), , LINE_8);
putText(image, "Open CV Core Tutorial", Point(image.cols / - , image.rows / ),
CV_FONT_HERSHEY_PLAIN, 2.0, Scalar(, , ), , LINE_8);
imshow(WINTITLE, image);
if (waitKey() >= )
{
return -;
}
}
return ;
}
opencv::绘制-基本几何的更多相关文章
- OpenCV绘制检测结果
OpenCV绘制检测结果 opencv rtcp timestamp 一.介绍 由于在验证阶段,使用FPGA时我们的算法检测速度很慢,没法直接在主流上进行绘图,否则的话,主流就要等待算法很久才能 ...
- 详解用OpenCV绘制各类几何图形
摘要:本文详细介绍了OpenCV绘制几何图形的方法,利用cv2.line().v2.circle().cv2.rectangle().cv2.ellipse().cv2.polylines().cv2 ...
- OpenCV绘制图像中RGB三个通道的直方图
一开始是看<OpenCV计算机视觉编程攻略(第2版)>这本书学做直方图,但是书本里说直方图的部分只详细说了黑白图像(单通道)的直方图绘制方法,RGB图像的直方图只说了如何计算,没有说计算完 ...
- [原][译][osgearth]关于Features & Symbology (特征与符号)(OE绘制矢量几何与特殊字符)讲解(OE官方文档翻译)
原文参考:http://docs.osgearth.org/en/latest/user/features.html 自己翻译的,本人英文水平有限,有问题看原链接,原文 20170802重置修改部分翻 ...
- Opencv绘制最小外接矩形、最小外接圆
Opencv中求点集的最小外结矩使用方法minAreaRect,求点集的最小外接圆使用方法minEnclosingCircle. minAreaRect方法原型: RotatedRect minAre ...
- OpenCV绘制朱利亚(Julia)集合图形
朱利亚集合是一个在复平面上形成分形的点的集合.以法国数学家加斯顿·朱利亚(Gaston Julia)的名字命名. 朱利亚集合可以由下式进行反复迭代得到: 对于固定的复数c,取某一z值(如z = z0) ...
- 学习OpenCV——绘制彩色直方图(HSV2BGR)
#include <cv.h> #include <highgui.h> #include <iostream> using namespace std; int ...
- CUDA+OpenCV 绘制朱利亚(Julia)集合图形
Julia集中的元素都是经过简单的迭代计算得到的,很适合用CUDA进行加速.对一个600*600的图像,需要进行360000次迭代计算,所以在CUDA中创建了600*600个线程块(block),每个 ...
- OpenCV绘制直线,矩形和园
首先导入我们所需要的库: import numpy as np import cv2 import matplotlib.pyplot as plt 自定义显示图像的函数: def show(imag ...
随机推荐
- 深入理解Three.js中透视投影照相机PerspectiveCamera
前言 在开始正式讲解透视摄像机前,我们先来理理three.js建模的流程.我们在开始创建一个模型的时候,首先需要创建我们模型需要的物体,这个物体可以是three.js中已经为我们封装好的,比如正方体, ...
- jmeter linux分布式压测Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks
在路径\apache-jmeter-5.0\bin下启动jmeter-server.bat时抛出了如下异常: 1.jmeter 1099端口 被占用,修改端口号 使用netstat -lntp|gre ...
- [VB.NET Tips]程序的启动和终止
当执行一个VB.NET应用程序时,CLR会把IL翻译成x86指令,并且寻找一个名为Main的方法. 并从该方法开始执行程序.Main方法也称为程序的"入口"(entry point ...
- Laravel 从入门到精通 创建并运行一个新的 Laravel 项目
创建一个新的 Laravel 项目 正如官方文档所言,有两种方式可以创建一个新的 Laravel 项目,这两种创建方式都是从命令行执行的:第一种是通过全局的 Laravel 安装器,另一种是通过 Co ...
- 品Spring:负责bean定义注册的两个“排头兵”
别看Spring现在玩的这么花,其实它的“筹码”就两个,“容器”和“bean定义”. 只有先把bean定义注册到容器里,后续的一切可能才有可能成为可能. 所以在进阶的路上如果要想走的顺畅些,彻底搞清楚 ...
- 用Python构造ARP请求、扫描、欺骗
目录 0. ARP介绍 1. Scapy简述 2. Scapy简单演示 2.1 安装 2.2 构造包演示 2.2.1 进入kamene交互界面 2.2.2 查看以太网头部 2.2.3 查看 ICMP ...
- 基于操作系统原理的Webmin管理工具的安装使用
一.实验目的 1.了解Webmin管理工具的功能. 2.掌握Webmin的安装. 3.掌握Webmin管理工具的使用 二.实验内容 1.下载Webmin安装包. 2.在Linux主机中安装Webmin ...
- 使用path监听指定文件系统的变化
在以前的JAVA版本中,如果程序需要检测文件的变化,那么需要开辟一个线程每隔一段时间去遍历一次指定的目录,如果发现此次遍历结果和上次不同,那么就认为文件变动了 ,这样的方式非常繁琐,JAVA 7之后的 ...
- c3p0配置记录
官方文档 : http://www.mchange.com/projects/c3p0/index.html <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 ...
- SLES15SP1 AutoYast - PXE 技术
由于最近在做几个Ceph项目,基本都是50个节点起,那我们在项目中经常使用PXE技术来实现系统自动化安装,提高效率,可能有会说PXE技术太老了没什么好了解,但我觉得的很实用,尤其在项目型工程中,通过P ...