OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道
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
也就是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点,有两个方法:
- 使用矩形区域Rect,指定矩形的左上角坐标和矩形的长度和宽度:
Mat imageRIO = image(Rect(100,200,logo.cols,logo.rows));
- 指定感兴趣行或列的范围(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、分离/混合通道的更多相关文章
- OpenCV3编程入门笔记(6)自我验证各函数程序代码
// asw.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <opencv2/opencv.hpp> usi ...
- OpenCV3编程入门笔记(5)重要章节小节及核心函数
- OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图
图像载入.显示.保存函数: 1 图像载入函数:imread() Mat imread(const string& filename, int flags=1); const ...
- OpenCV3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换
腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RE ...
- OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道
15 遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数. 矩阵归一化:normalize()函数,参数 ...
- OpenCV3编程入门笔记(一)
---恢复内容开始--- 图像处理技术一般包括图像压缩,增强和复原,匹配.描述和识别3个部分.图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强.还原.去噪.分割等:而计算机视觉重点 ...
- OpenCV3编程入门-读书笔记2-core组件
一.颜色空间缩减 1.概念 如果图像是3通道,深度为1个字节,则每个像素有256*256*256种可能值,这么多的可能值会对算法性能造成严重影响.利用颜色空间缩减就能解决这个问题,例如将颜色值0~9取 ...
- 【浅墨著作】《OpenCV3编程入门》内容简单介绍&勘误&配套源码下载
经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...
- OpenCV3编程入门.记录
ZC:OpenCV3编程入门_毛星云编著_电子工业出版.pdf 1.在看到 PDF.P134(计算数组加权和:addWeighted()函数)的时候,其中讲到“当输出数组的深度为CV_32S时,这个函 ...
随机推荐
- Oracle之ORA-00972: identifier is too long
一.前言 今天在程序的日志中出现这个错误,网上搜了一下发现,说是Oracle的对象名字最多是30个字符,不能超过30,而我出错的sql是: "select * from test where ...
- Kernel启动时 驱动是如何加载的module_init,加载的次序如何;略见本文
Init.h中有相关initcall的启动次序,在system.map中可看出具体的__initcall指针的前后次序 #define pure_initcall(fn) __define_initc ...
- Tomcat优化总结
一.内存溢出问题 Linux设置启动脚本 [root@LAMP ~]# vi /usr/local/tomcat/bin/catalina.sh #__________________________ ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
- xcodeheader search 配置
一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝对路径的问题不大,但是如果你把工程发给别人,别人就要在改这个绝对路径,这时候绝对路径的 ...
- Java开发、网络爬虫、自然语言处理、数据挖掘简介
一.java开发 (1) 应用开发,即Java SE开发,不属于java的优势所在,所以市场占有率很低,前途也不被看好. (2) web开发,即Java Web开发,主要是基于自有或第三方成熟框架的系 ...
- 各操作系统配置java环境变量
Windows 1. JAVA_HOME -->> E:\java-tools\Java\JDK8_64\jdk1.8.0_77 2. path -->> %JAVA_HOM ...
- <转>如何改变讨好型人格 | 你根本不需要讨好任何人
在我过去二十多年的生命里一直是一个“讨好者”. 我总是活在别人对我的期待中,我总是不停的追逐着别人对我的认可,我总是像个卑微的奴才一样去满足别人的需求. 但就和大多数的“讨好者”一样,我们越是寻求别人 ...
- Cheatsheet: 2013 06.23 ~ 06.30, Farewell GoogleReader(2008.07.20~2013.06.30)
Mobile Resources for Mac and iOS Developers- Introduction to Objective-C Modules Other 10 Principles ...
- Windows下通过bat脚本实现自动上传文件到ftp服务器
@Echo Off Echo open ip_address [port] >ftp.up Echo [username]>>ftp.up Echo [password]>&g ...