OpenCV入门(一)
参考:http://blog.csdn.net/poem_qianmo/article/details/20537737
这位同学挺牛的,才研一就出书了,实在是让人汗颜啊,不说了,多学习。
这一篇主要讲了opencv中的几个基本函数imread,namewindow,imshow,imwrite,浅显易懂,非常的赞。
ROI:感兴趣的区域。看看这位同学给的一段代码:
先在原图中标出感兴趣的区域和大小,在原图此区域的地方和另外一幅图按着相应的权重进行混合,就得到一幅混合图像。
具体可参考这篇博文:http://blog.csdn.net/poem_qianmo/article/details/20911629
Mat imageROI;
Mat logo = imread("logo.jpg"); imageROI = m1(Rect(, , logo.cols, logo.rows));
addWeighted(imageROI, 0.3, logo, 0.6, ., imageROI);
namedWindow("【4】原画+logo图");
imshow("【4】原画+logo图", m1);
Rect和Range是有差别的。Rect直接给出左上坐标和区域大小,Range是给出起始坐标和长度,这点需要注意。
这一篇博文:http://blog.csdn.net/poem_qianmo/article/details/21176257主要讲了两个函数:split和merge
当需要对RGB三个颜色通道的分量进行分别显示和调整时,通过OpenCV的split和merge方法可以很方便的达到目的。
下面这段代码还是挺简单的,不过对于为什么logo会变色,值得注意,看看这位博友的回答,我觉得很好:
blue,green,red都是单一通道的灰度图,其像素的灰度值代表的是该像素的亮度(注意是亮度而不是颜色),在Addweighed函数中,
我们对BlueImagechannel和logoImage进行加权求和,实际上是对其灰度值进行求和,然后再把结果储存在dst中。最终输出结果的logo
部分的颜色由dst决定,而BlueImage和logoimage只是决定输出结果的logo部分的亮度而已,不决定颜色。
Mat srcImage;
Mat logoImage;
vector<Mat>channels;
Mat imageBlueChannel ,imageGreenChannel; logoImage = imread("dota_logo.jpg", );
srcImage = imread("dota_jugg.jpg"); if (!logoImage.data) { printf("Oh,no,读取logoImage错误~!\n"); return false; }
if (!srcImage.data) { printf("Oh,no,读取srcImage错误~!\n"); return false; } split(srcImage, channels);//分离色彩通道 imageBlueChannel = channels.at();
imageGreenChannel = channels.at();
addWeighted(imageBlueChannel(Rect(, , logoImage.cols, logoImage.rows)), 1.0,
logoImage, 0.5, , imageGreenChannel(Rect(, , logoImage.cols, logoImage.rows))); merge(channels, srcImage); namedWindow("<1>游戏原画+logo蓝色通道 by浅墨");
imshow("<1>游戏原画+logo蓝色通道 by浅墨", srcImage);
OpenCV入门(一)的更多相关文章
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置
图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...
- 【OpenCV入门指南】第一篇 安装OpenCV
http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...
- OpenCV入门教程
OpenCV入门教程 作者:于仕琪 OpenCV入门教程.pdf
- opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整
http://blog.csdn.net/poem_qianmo/article/details/21479533 [OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调 ...
- OpenCV入门之获取验证码的单个字符(二)
在文章 OpenCV入门之获取验证码的单个字符(字符切割)中,介绍了一类验证码的处理方法,该验证码如下: 该验证码的特点是字母之间的间隔较大,很容易就能提取出其中的单个字符.接下来,笔者将会介绍如 ...
- OpenCV 入门
1.入门攻略[安装用] https://www.cnblogs.com/linshuhe/p/5764394.html 2.VS2017配置opencv教程(超详细!!!) https://blog. ...
- opencv入门指南(转载)
转载链接:http://blog.csdn.net/morewindows/article/details/8426318 网上的总结的一些用openncv的库来做的事: 下面列出OpenCV入门指南 ...
随机推荐
- [bzoj 1026]windy数(数位DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1026 分析: 简单的数位DP啦 f[i][j]表示数字有i位,最高位的数值为j的windy数总 ...
- 开放封闭原则(OCP,Open Closed Principle)
tks:http://www.cnblogs.com/Benjamin/p/3251987.html
- AngularJS开发指南12:AngularJS的模板,CSS,数据绑定详解
模板 AngularJS模板是一种声明式的规则.它包含了模型和控制器的信息,最后会被渲染成用户在浏览器中看到的视图.它是静态的DOM,包含HTML,CSS和AngularJS指定的元素和属性.Angu ...
- 每天一个linux命令(25):df 命令
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- 【转】document.documentElement和document.body的区别
转自:http://www.cnblogs.com/ckmouse/archive/2012/01/30/2332070.html 网页中获取滚动条卷去部分的高度,可以通过 document.body ...
- ansible-1 的安装
该文章摘自:http://my.oschina.net/firxiao/blog/343395,该文章制作笔记使用,不做他用,转载请注明原文链接出处 Ansible 默认是基于SSH协议进行通信的. ...
- TRUNC函数,ORA-01898 精度说明符过多
TRUNC(SYSDATE)即可默认当前日期(年月日),TRUNC(SYSDATE,'yyyy-mm-dd'),精度说明符过多
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- Erlang练习题----shopping
直接就上代码了: -module(shop). -export([cost/1,total/1]). cost(orange) -> 5; cost(newspaper) -> 8; co ...
- core dump gdb调试
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIG ...