opencv 常用的数据结构和函数

颜色空间转换函数 cvtColor 函数

cvtColor 函数是opencv 中的颜色空间转换函数。
可以实现rgb向hsv hsi等颜色空间的转换,也可以转换成灰度图像

原型:void cvtColor (InputArray src,OutArray dst,int code,int dstCn =0);
src :输入图像
dst:输出图像
code:颜色转换空间标示
dstCn:目标图像的通道数 若该参数为0 则为目标图像的通道数

cvtColor 函数标识符
RGB-> BGR CV_BGR2BGRA ,CV_RGB2BGRA,CV_BGRA2RGBA,CV_BGR2BGRA,CV_BGRA2BGR
RGB->GRAY CV_RGB2GRAY,CV_GRAY2RGB,CV_RGBA2GRAY,CV_GRAY2RGBA
RGB->HSV CV_RGB2HSV,CV_BGR2HSV,CV_HSV2BGR,CV_HSV2BGR,CV_HSV2RGB
RGB->HLS CV_RGB2HLS,CV_BGR2HLS,CV_HLS2RGB,CV_HLS2BGR

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
int main()
{
Mat srcImage = imread("jpg/1.jpeg");
Mat dstImage;
cvtColor(srcImage,dstImage,CV_RGB2BGR);
imshow("src",srcImage);
imshow("dst",dstImage);
waitKey();
return 0;
}

图形绘制函数
Ellipse函数的用法
函数原型:void ellipse(Mat&img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar&color, int thickness=1, int lineType=8, int shift=0)

img :画布容器
center:椭圆中心
axes :大小位于该矩形中
angle:椭圆的旋转角度
startangle:开始弧度
endAngle:结束弧度
color :图形颜色
thickness :线宽
lineType :线型
shift :圆心坐标点和数轴的精度

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
#define WINDOW_WIDTH 600
void DrawEllipse(Mat img,double angle)
{
int thickness = 2;
int lineType = 8;
ellipse(
img,
Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),
Size(WINDOW_WIDTH/4,WINDOW_WIDTH/16),
angle,
0,
360,
Scalar(255,129,0),
thickness,
lineType
);

}
int main()
{
Mat img(1000,600,CV_8UC3,Scalar::all(0));
DrawEllipse(img,30);
imshow("ellipse",img);
waitKey();
return 0;
}

Circle 函数的用法

函数原型 void circle(Mat& img, Point center, int radius, const Scalar& color, intthickness=1, int lineType=8, int shift=0)
img: 将要画圆的图像;
center: 圆心;
radius: 半径;
color: 圆的颜色;
thickness: 如果值是正,圆外轮廓的厚度,如果值是负,表示要绘制一个填充圆;
lineType:线类型;
shift:

void DrawCircle(Mat img)
{
int thickness = -1;
int lineType = 8;

circle(
img,
Point(100,300),
60,
Scalar(0,89,255),
thickness,
lineType

);
}

line 函数的用法
函数原型 line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
img :输出图像
pt1 :开始点
pt2 :结束点
color:线条颜色
thickness :线条粗细
lineType :线型
shift

void DrawLine(Mat img)
{
int thickness = 1;
int lineType = 8;

line(
img,
Point(100,200),
Point(500,600),
Scalar(255,23,56),
thickness,
lineType
);
}

opencv 基本绘图函数的更多相关文章

  1. OpenCV基本绘图函数

    线段:line 函数 CV_EXPORTS_W void line(CV_IN_OUT Mat& img, Point pt1, Point pt2, const Scalar& co ...

  2. opencv-python教程学习系列4-opencv绘图函数

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv绘图函数,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统 ...

  3. OpenCV中的绘图函数-OpenCV步步精深

    OpenCV 中的绘图函数 画线 首先要为画的线创造出环境,就要生成一个空的黑底图像 img=np.zeros((512,512,3), np.uint8) 这是黑色的底,我们的画布,我把窗口名叫做i ...

  4. opencv学习之路(4)、Mat类介绍,基本绘图函数

    一.Mat类创建 Mat img;//创建无初始化矩阵 Mat img1(,,CV_8UC1);//200行,100列(长200,宽100) Mat img2(Size(,),CV_8UC3,Scal ...

  5. OpenCV绘图函数

    OpenCV几个绘图函数 矩形 rectangle(Mat& img,Point pt1, Point pt2, const Scalar&color, int thickness=1 ...

  6. 5、opencv中的绘图函数

    1.目标 a.学习使用 OpenCV 绘制不同几何图形 b. 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),c ...

  7. OpenCV中的绘图函数

    OpenCV可以用来绘制不同的集合图形,包括直线,矩形,圆,椭圆,多边形以及在图片上添加文字.用到的绘图函数包括 cv2.line(),cv2.circle(),cv2.rectangle() ,cv ...

  8. Opencv笔记(四)——绘图函数

    常用的绘图函数有: cv2.line()       cv2.circle()        cv2.rectangle()      cv2.ellipse()       cv2.putText( ...

  9. OpenCV3入门(三)基本绘图函数

    1.函数原型 /** @brief Draws a line segment connecting two points.*/ CV_EXPORTS_W void line(InputOutputAr ...

随机推荐

  1. 定制Android开发者专属T恤

    之前在T社上买了一件定制的T恤,感觉质量挺不错的,那是段子张发起的众筹.正面有hello google这几个字母. 我自己本身是一个Android粉,从nexus手机到pixel手机,坚持买原生的操作 ...

  2. Tornado+MySQL模拟SQL注入

    实验环境: python 3.6 + Tornado 4.5 + MySQL 5.7 实验目的: 简单模拟SQL注入,实现非法用户的成功登录 一.搭建环境 1.服务端的tornado主程序app.py ...

  3. git常用基本命令

    一定要以管理员的身份打开,否则有些命令不能用,比如ssh -T git@github.com(查看配置ssh是否成功)@初始化git git config --global user.name ruo ...

  4. H5编辑器核心算法和思想-遁地龙卷风

    代码和特性在chrome49下测试有效. 文本渲染的本质是对文本节点的渲染,通过浏览器内置的对象Range可以获得选择的起始点.与终止点   var range = getRangeObject(); ...

  5. 自定义事件解决重复请求BUG

    现在,组件化开发还是比较流行的,毕竟其优点相当突出.最近在开发一个组件的时候,遇到了一个很有意思的BUG... BUG的背景 最近在开发一个组件,好不容易开发好了转测试.然后,测试给我提了一个这样的b ...

  6. Struts 框架 之 文件上传下载案例

    Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:

  7. tp5实现邮件发送

    项目中,用户修改密码,需要发送验证码到用户邮箱,于是就看了看,在此记录一下. 1.开启SMTP服务 测试用的是自己的qq邮箱,首先需要开启邮箱的SMTP服务,开启之后,要记得给你的授权码,授权码一定要 ...

  8. tomcat一个端口配置多个项目

    在server.xml中增加host节点 <Host name="localhost" appBase="webapps" <!--这是默认的--- ...

  9. Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析

    这是大土豆的第一篇博客,想着工作3年多了,在工作上从一名菜鸟逐渐成长为在项目中能干点事的人,自己对Android的见解也一步步加深,有必要写一些对Android代码和开发过程中的感悟,和广大朋友们分享 ...

  10. java第一课,java基础

    Java:                是1991年SUN公司的James Gosling等人开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒,PDA等的微处理器.java.是面向互联网的语 ...