一、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类介绍,基本绘图函数的更多相关文章

  1. springboot 学习之路 2(注解介绍)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  2. VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)

    上一节中鸡啄米讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类. CDC类提供了用来处理显示器或打印机等设备上下文的成员函数,还有处理与窗口客户 ...

  3. VS2010-MFC(图形图像:CDC类及其屏幕绘图函数)

    转自:http://www.jizhuomi.com/software/244.html 上一节讲了文本输出的知识,本节的主要内容是CDC类及其屏幕绘图函数. CDC类简介 CDC类是一个设备上下文类 ...

  4. opencv中mat类介绍

    The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It ...

  5. OpenCV 学习之路(2) -- 操作像素

    本节内容: 访问像素值 用指针扫描图像 用迭代器扫描图像 编写高效的图像扫描循环 扫描图像并访问相邻像素 实现简单的图像运算 图像重映射 访问像素值 准备工作: 创建一个简单函数,用它在图像中加入椒盐 ...

  6. opencv学习之路(17)、边缘检测

    一.概述 二.canny边缘检测 #include "opencv2/opencv.hpp" using namespace cv; void main() { //Canny边缘 ...

  7. opencv学习之路(13)、图像阈值化threshold

    一.图像阈值化简介 二.固定阈值 三.自适应阈值 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src ...

  8. opencv学习之路(12)、图像滤波

    一.图像滤波简介 二.方框滤波——boxFilter() #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat ...

  9. 【C++学习之路】派生类的构造函数(三)

    三.多层继承的派生类 1.多层继承的派生类只需在构造函数的初始化列表中写出直接基类的构造函数即可 class student { public: student(int n, string nam) ...

随机推荐

  1. tp命名空间

    namespace   Home\Controller;  命名空间   根命名空间下的类所在的文件夹use Think\Controller; 使用   根命名空间下的controller类 顶头写 ...

  2. oracle中ddl的管理

    因为某些原因,Oracle的ddl权限不能开放给用户. 之前采取的方式是,创建用户的时候不为其赋予create table 的权限. 但是在使用过程中发现该用户还是拥有alter table的权限. ...

  3. Discuz-阅读权限

    设置用户浏览帖子或附件的权限级别,范围 0-255,0 为禁止用户浏览任何帖子或附件. 当用户的阅读权限小于帖子或附件的阅读权限许可(默认时为 1)时, 用户将不能阅读该帖子或下载该附件

  4. php高并发,大流量

    一般使用LVS+PHP集群(1000台),就算日均80亿次请求,每秒有10万并发,那分到每台机器的请求只有100个.只要你的PHP程序不是太差,100QPS总没问题吧? 而真正的瓶颈在于数据库和存储系 ...

  5. Eclipse-----解决调试源码不进入断点问题

    1.Window-->Preferences-->Java-->installed JRES   添加Standard VM 添加完成后,如下图 2.右键点击项目-->Prop ...

  6. Necklace (全排列 + 匈牙利)

    #include<bits/stdc++.h> using namespace std; ][], Gra[][]; ]; ]; ]; bool dfs(int u, int vN) { ...

  7. 前端 dojo

    http://dojotoolkit.org/documentation/tutorials/1.10/hello_dojo/ html在线编辑器 国内 http://runjs.cn 国外 http ...

  8. 【2017-04-25】winform公共控件、菜单和工具栏

    一.公共控件 公共控件很多的属性很多都相似,这些是大部分都相同的: +布局 - AutoSize:自动适应控件上文字内容- Location:位置- Margin:控件间的间距- Size:控件大小 ...

  9. plsql 代码自动补全

    1.新建一个文件,命名不限定,文件内容为自动补全内容,比如: i=INSERTu=UPDATEs=SELECTf=FROMw=WHEREo=ORDER BYd=DELETEdf=DELETE FROM ...

  10. tensorflow学习2-线性拟合和神经网路拟合

    线性拟合的思路: 线性拟合代码: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #%%图形绘制 ...