11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end);

绘制椭圆的ellipse函数 DrawEllipse(Mat img, double angle) 其中angle为椭圆旋转角度

绘制矩形的rectangle函数 DrawRectangle

绘制原的circle函数 DrawFilledCircle(Mat img, Point center)

绘制填充的多边形的fillpoly函数 DrawPolygon(Mat img)

12     计时函数 getTickCount和getTickFrequency

getTickCount表示CPU自某个事件以来走过的时钟周期数

getTickFrequency表示一秒钟所走的时钟周期数

double time0 = static_cast<double>(getTickCount());记录起始时间

time0 = ((double)getTickCount()-time0)/getTickFrequency(); 得出运行时间

13     感兴趣区域:RIO

也就是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点,有两个方法:

  1. 使用矩形区域Rect,指定矩形的左上角坐标和矩形的长度和宽度:

Mat imageRIO = image(Rect(100,200,logo.cols,logo.rows));

  1. 指定感兴趣行或列的范围(Range),Range是指从起始索引到终止索引的一连段连续序列:

imageRIO  = image(Range(100,100+logo.rows),Range(200,200+logo.cols));

例子:(其中logoImage.copyTo是将mask内容复制到imageRIO1中,相似函数addWeight());

#include "stdafx.h"

#include <opencv2/opencv.hpp>

using namespace cv;

using namespace std;

int main()

{

Mat srcImage = imread("C:/Users/Administrator/Pictures/timg.jpg");

Mat dstImage;

int rowNumber = srcImage.rows;

int colNumber = srcImage.cols;

Mat imageRIO = srcImage(Rect(100,200,150,350));

imshow("3",imageRIO);

imwrite("图3.jpg",imageRIO);

//waitKey(100);

cvtColor(srcImage,dstImage,CV_BGR2GRAY);

imwrite("图1.jpg",srcImage);

Mat logoImage = imread("图3.jpg");

if (!logoImage.data)

{

printf("读取图片失败\n");

return false;

}

Mat imageRIO1 = srcImage(Rect(100,200,imageRIO.rows,imageRIO.cols));

Mat mask = imread("图1.jpg");

logoImage.copyTo(imageRIO1,mask);

imshow("1",srcImage);

imshow("2",dstImage);

waitKey(0);

return 0;

}

14     分离颜色通道 split 多通道混合 merge

split(srcImage,channels);// 通道分离

imageBlueChannel = channels.at(0);

imageGreenChannel= channels.at(1);

imageGreChannel = channels.at(2);

merge(channels,mergeImage);//混合图像

OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道的更多相关文章

  1. OpenCV3编程入门笔记(6)自我验证各函数程序代码

    // asw.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <opencv2/opencv.hpp> usi ...

  2. OpenCV3编程入门笔记(5)重要章节小节及核心函数

  3. OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图

    图像载入.显示.保存函数: 1         图像载入函数:imread()   Mat imread(const string& filename, int flags=1); const ...

  4. OpenCV3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换

    腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RE ...

  5. OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道

    15     遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数. 矩阵归一化:normalize()函数,参数 ...

  6. OpenCV3编程入门笔记(一)

    ---恢复内容开始--- 图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分.图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强.还原.去噪.分割等:而计算机视觉重点 ...

  7. OpenCV3编程入门-读书笔记2-core组件

    一.颜色空间缩减 1.概念 如果图像是3通道,深度为1个字节,则每个像素有256*256*256种可能值,这么多的可能值会对算法性能造成严重影响.利用颜色空间缩减就能解决这个问题,例如将颜色值0~9取 ...

  8. 【浅墨著作】《OpenCV3编程入门》内容简单介绍&amp;勘误&amp;配套源码下载

    经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...

  9. OpenCV3编程入门.记录

    ZC:OpenCV3编程入门_毛星云编著_电子工业出版.pdf 1.在看到 PDF.P134(计算数组加权和:addWeighted()函数)的时候,其中讲到“当输出数组的深度为CV_32S时,这个函 ...

随机推荐

  1. 翻译之basename()

    NAME top basename, dirname - parse pathname components SYNOPSIS top #include <libgen.h> char * ...

  2. HTTP 错误 404.2 - Not Found

    前几天刚安装Windows Server 2008 r2 sp1 遇到问题之后,昨天我又遇到一个问题(但我不害怕有问题),提示: HTTP 错误 404.2 - Not Found由于 Web 服务器 ...

  3. C#获取当前页面的url

    C#获取当前页面的url string a= Request.ApplicationPath; // / string b = Request.CurrentExecutionFilePath; // ...

  4. CSocket服务器(TCP)

    我的理解:把服务器和客户端的交互工程比喻成外来人员访问公司,每来一个客户端访问,需要服务器的前台经理接待此客户,然后前台经理呼叫一个接待员来将客户带上楼.服务器的两个角色前台经理和接待员就是服务器的两 ...

  5. 自动布局(Masonry)设置tabbar

    //自定义标签工具栏 - (void) initTabBarView{ // self.bottomView = [[UIView alloc]initWithFrame:CGRectMake(, k ...

  6. Python3基础 用三个双引号 print输出多行文本

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  7. 熟悉 Objective-C

    ## 1. OC 的起源 OC 的方法(本质上讲是消息)在运行时决定.使用函数调用的语言,由编译器决定.如果涉及多态,则用到虚函数表. ## 2. 少在头文件中引用其他文件 1. 两个头文件互相引用会 ...

  8. Til the Cows Come Home(poj 2387 Dijkstra算法(单源最短路径))

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32824   Accepted: 11098 Description Bes ...

  9. Creating, Stopping, Re-Starting and Deleting a Timer in Oracle Forms

    I have written many posts previously on Timers in Oracle Forms like how to change images randomly wi ...

  10. 安装 SQLManagementStudio_x86_CHS(SQL Server Management Studio) 老提示重启的解决办法

    安装 SQL Server Management Studio(SQLManagementStudio_x86_CHS)时,检测时不通过,提示重启电脑,我以为她安装了什么心软件没有重启:所以重启了电脑 ...