opencv学习之路(4)、Mat类介绍,基本绘图函数
一、Mat类创建
Mat img;//创建无初始化矩阵
Mat img1(,,CV_8UC1);//200行,100列(长200,宽100)
Mat img2(Size(,),CV_8UC3,Scalar(,,));//长100,宽200
Mat img3(,,CV_8UC3,Scalar(,,));//创建200行,100列的8位三通道矩阵
Mat img4(,,CV_8UC1,Scalar());//创建单通道矩阵

#include <opencv2/opencv.hpp>
using namespace cv; void main(){
Mat img1=imread("E://1.jpg");
Mat img2(img1);
Mat img3=img1;
Mat img4=img1.clone();
Mat img5;
img1.copyTo(img5); cvtColor(img1,img1,CV_BGR2HSV);//BGR图转为HSV图
imshow("img1",img1);
imshow("img2",img2);
imshow("img3",img3);//image1/2/3跟随原图变化
imshow("img4",img4);
imshow("img5",img5);//image4/5不会跟随原图变化
waitKey();
}

二、基本绘图函数
1、画线、画圆、画矩形
#include <opencv2/opencv.hpp>
using namespace cv; void main(){
Mat img(,,CV_8UC3,Scalar(,,));//创建一个500行400列,3通道(即彩色图)的白色图
line(img,Point(,),Point(,),Scalar(,,),,);//在img图中画一条黄线,线宽为20,线型为8联通(一般都设置为8)
circle(img,Point(,),,Scalar(,,),,); //以(200,100)为圆心,半径为50,线宽为15画空心圆
circle(img,Point(,),,Scalar(,,),-,); //设置为-1时,画实心圆
rectangle(img,Point(,),Point(,),Scalar(,,),,); //传入坐上、右下角坐标,画空心矩形
rectangle(img,Rect(,,,),Scalar(,,),-,); //传矩形数据(左上角坐标(200,300)和宽100,高50),画实心绿色矩形 imshow("drawing",img);
waitKey();
}

2、画椭圆、画多边形、写入文字
#include <opencv2/opencv.hpp>
using namespace cv; void main(){
Mat img(,,CV_8UC3,Scalar(,,));
ellipse(img,Point(,),Size(,),,,,Scalar(,,),,); //画椭圆,(200,200)为中点,15旋转角度,0~360度,长轴180,短轴80
ellipse(img,RotatedRect(Point(,),Size(,),),Scalar(,,),-,); //画椭圆,40旋转角度 Point ppt[]={Point(,),Point(,),Point(,),Point(,),Point(,),Point(,)};
Point ppt2[]={Point(,),Point(,),Point(,),Point(,)};//定义点集
const Point* pts[]={ppt};
const Point* pts2[]={ppt2};
int npt[]={};
int npt2[]={};
fillPoly(img,pts,npt,,Scalar(,,),); //画填充多边形
polylines(img,pts2,npt2,,false,Scalar(,,),,); //画多边形,false为不闭合,true为闭合 putText(img,"China",Point(,),CV_FONT_BLACK,,Scalar(,,),,);//写入文字 imshow("drawing",img);
waitKey();
}

opencv学习之路(4)、Mat类介绍,基本绘图函数的更多相关文章
- springboot 学习之路 2(注解介绍)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)
上一节中鸡啄米讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类. CDC类提供了用来处理显示器或打印机等设备上下文的成员函数,还有处理与窗口客户 ...
- VS2010-MFC(图形图像:CDC类及其屏幕绘图函数)
转自:http://www.jizhuomi.com/software/244.html 上一节讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类 ...
- opencv中mat类介绍
The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...
- OpenCV 学习之路(2) -- 操作像素
本节内容: 访问像素值 用指针扫描图像 用迭代器扫描图像 编写高效的图像扫描循环 扫描图像并访问相邻像素 实现简单的图像运算 图像重映射 访问像素值 准备工作: 创建一个简单函数,用它在图像中加入椒盐 ...
- opencv学习之路(17)、边缘检测
一.概述 二.canny边缘检测 #include "opencv2/opencv.hpp" using namespace cv; void main() { //Canny边缘 ...
- opencv学习之路(13)、图像阈值化threshold
一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...
- opencv学习之路(12)、图像滤波
一.图像滤波简介 二.方框滤波——boxFilter() #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat ...
- 【C++学习之路】派生类的构造函数(三)
三.多层继承的派生类 1.多层继承的派生类只需在构造函数的初始化列表中写出直接基类的构造函数即可 class student { public: student(int n, string nam) ...
随机推荐
- Linux:系统文件目录
目录结构 bin:命令类目录 命令 系统操作 清屏:clear.ctrl+L 进程: # $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 #kill -u ...
- vue中打印显示++的问题解决方案(做成类似同步的操作就行了)
这个问题,困扰我很久很久 怎么实现的呢?首先进入页面就开始调取打印接口,打印接口的成功回调函数里面写 this.hasOut++(这是实时显示的数量)this.width=(this.hasOut/t ...
- cocos2d-x 暂停/恢复 与场景相关(SceneGraph类型)的监听器
开发过程中,我们经常会遇到这样的情况:想要让一个Layer中所有的Node对象的事件都停止响应. 在响应用户事件后,又要恢复该Layer的所有事件响应. 如: 用户想要显示一个模式对话框,显示对话框后 ...
- java 之多线程
多线程基本概念_程序_线程 1.1程序.进程.线程 程序:Program是一个指令的集合 进程:Process(正在执行中的程序)是一个静态的概念.进程是程序的一次静态执行过程,占用特定的地址空间.每 ...
- exec函数族的作用与讲解
apue看到第八章,对exec函数族的理解一直都很混乱,总觉得不对劲儿,其实不能理解的先暂时跳过,看到后面,再结合实例也就慢慢的理解了. 以下内容转自:http://www.cppblog.com/p ...
- DateTime.Compare(t1,t2)比较两个日期大小
DateTime.Compare(t1,t2)比较两个日期大小,排前面的小,排在后面的大,比如:2011-2-1就小于2012-3-2返回值小于零: t1 小于 t2. 返回值等于零 : t1 等于 ...
- jQuery-手风琴效果-2
动画 高级函数:基于底层函数又进行了封装 两大块:简化版的动画函数和万能动画函数 简化版动画函数 显示/隐藏$().show; $(...).hide(); 强调:无参数的show()/hide()使 ...
- 解决sqlserver修改被阻止的提示
https://jingyan.baidu.com/article/f79b7cb3664f299144023ef8.html 工具——选项——选择designers---表设计器和数据库设计器,将阻 ...
- Python之words count
要求: 对文件单词进行统计,不区分大小写,并显示单词重复最多的十个单词 思路: 利用字典key,value的特性存单词及其重复的次数 每行进行特殊字符的处理,分离出被特殊字符包含的单词 def mak ...
- lua元表学习
a = {, } b= {, } vector2 = {} function vector2.Add(v1, v2) if(v1 == nil or v2 == nil)then return nil ...