参考: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入门(一)的更多相关文章

  1. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0 +VS 2013 开发环境配置

    图片太多,具体过程参照: [OpenCV入门教程之一] 安装OpenCV:OpenCV 3.0.OpenCV 2.4.8.OpenCV 2.4.9 +VS 开发环境配置 说下我这边的设置: 选择deb ...

  2. 【OpenCV入门指南】第一篇 安装OpenCV

    http://blog.csdn.net/morewindows/article/details/8225783/ win10下vs2015配置Opencv3.1.0过程详解(转) http://ww ...

  3. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨)  ...

  4. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  5. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...

  6. OpenCV入门教程

    OpenCV入门教程 作者:于仕琪 OpenCV入门教程.pdf

  7. opencv ,亮度调整【【OpenCV入门教程之六】 创建Trackbar & 图像对比度、亮度值调整

    http://blog.csdn.net/poem_qianmo/article/details/21479533 [OpenCV入门教程之六] 创建Trackbar & 图像对比度.亮度值调 ...

  8. OpenCV入门之获取验证码的单个字符(二)

      在文章 OpenCV入门之获取验证码的单个字符(字符切割)中,介绍了一类验证码的处理方法,该验证码如下: 该验证码的特点是字母之间的间隔较大,很容易就能提取出其中的单个字符.接下来,笔者将会介绍如 ...

  9. OpenCV 入门

    1.入门攻略[安装用] https://www.cnblogs.com/linshuhe/p/5764394.html 2.VS2017配置opencv教程(超详细!!!) https://blog. ...

  10. opencv入门指南(转载)

    转载链接:http://blog.csdn.net/morewindows/article/details/8426318 网上的总结的一些用openncv的库来做的事: 下面列出OpenCV入门指南 ...

随机推荐

  1. 18.C#扩展方法(十章10.1-10.2)

    今天的话题,我们来聊下扩展方法,自己也真心感叹自己的文笔,那叫一个惨啊,回顾写的文章,看着看着也忘记当时是怀着什么心态写的,哈哈,现代人真心是太随性了,可能也是太冷漠了,接着写的吧,总是会有帮助,也会 ...

  2. Memcached——分布式缓存

    下载文件:https://sourceforge.net/projects/memcacheddotnet/ 将Commons.dll,ICSharpCode.SharpZipLib.dll,log4 ...

  3. groovyConsole — the Groovy Swing console

    1. Groovy : Groovy Console The Groovy Swing Console allows a user to enter and run Groovy scripts. T ...

  4. Excel如何查找名字重复的数据

    来源于:http://jingyan.baidu.com/article/414eccf6091ff86b431f0aec.html Cokery今天在帮助同事整理数据的时候遇到了一个难题,就是在Ex ...

  5. wordpress中如何禁止或者屏蔽更新提示

    WordPress禁止,插件更新,主题更新,wordpress本身更新提示的方法 禁止wp更新 : open file "wordpress\wp-includes\update.php&q ...

  6. .net架构设计读书笔记--第三章 第9节 域模型实现(ImplementingDomain Model)

        我们长时间争论什么方案是实现域业务领域层架构的最佳方法.最后,我们用一个在线商店案例来说明,其中忽略了许多之前遇到的一些场景.在线商店对很多人来说更容易理解. 一.在线商店项目简介 1. 用例 ...

  7. python多态

    多态是面向对象语言的一个基本特性,多态意味着变量并不知道引用的对象是什么,根据引用对象的不同表现不同的行为方式.在处理多态对象时,只需要关注它的接口即可,python中并不需要显示的编写(像Java一 ...

  8. Linux Kernel Synchronization && Mutual Exclusion、Linux Kernel Lock Mechanism Summarize

    目录 . 内核锁机制 . 同步与互斥 . 锁定内存总线原子操作 . 信号量 . 自旋锁 . RCU机制 . PERCPU变量 . 内存和优化屏障 . 读者/写者锁 . 大内核锁 . 互斥量 1. 内核 ...

  9. Xcon2014 && Geekpwn2014

    目录 . 链接器与加载器技术在保护壳上的应用 . android应用市场中的大规模漏洞挖掘 . android模拟躲避检测和应对 . 内核链表的奥秘 . 信号的可发现性 -- wifi之外我们还能做什 ...

  10. android 事件处理概念簇

    1)事件传递函数 2)事件相关: 事件.事件源.事件监听器.MotionEvent 3)坐标系.定位.路由: 4)Window activity view viewGroup