问题描述:给出一幅彩色图像和一张mask二值图像,其中mask和彩色图像大小相同,感兴趣的部分为1,其余部分为0,请用mask与彩色图像点乘,将感兴趣区域显示出来。

点乘的本质是mask中是二值图像,感兴趣部分像素值为1,将彩色图像与mask对应像素相乘,感兴趣区域的的像素保持不变,其余的像素点为0,从而显示感兴趣区域。

首先彩色图像是不能与二值图像直接进行点乘的,因为矩阵的维度都不一样。

这里有两种方法可以实现如上功能:将彩色图像按通道进行点乘,再合并起来,或者将二值图像复制扩充为三通道图像,再与彩色图像直接进行点乘。

复制扩充的意思是,图像有三个通道,应该让mask的三个通道都有感兴趣区域,不能也不能简单的将其他通道置为0,否则只会显示一个通道的彩色图像,B或G或R

Matlab

假设mask矩阵的大小为a(200,300),展示的是200*300的二值图像,原图大小为m(200,300,3),表示200*300的三通道彩色图像。

%假设输出图像为c
%按通道进行点乘
c(:,:,1)=m(:,:,1).*a;
c(:,:,2)=m(:,:,2).*a;
c(:,:,3)=m(:,:,3).*a;
%先将二值图像进行复制扩充
%假设三通道mask为p
p(:,;,)=a;
p(:,;,)=a;
p(:,;,)=a;
c=m.*p;

C++

OpenCV中的位与函数为bitwise_and,表示对应的像素点相与,另外mask的复制扩充及分通道,合并通道可以看:Scalar、图像通道、分离、合成通道

彩色图像与二值图像(mask)点乘的更多相关文章

  1. 如何让一张图片变成二值图像?python+opencv图像处理

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张熹熹 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  2. [转载]opencv MSER

    最大稳定极值区域(MSER-Maximally Stable Extremal Regions)可以用于图像的斑点区域检测.该算法最早是由Matas等人于2002年提出,它是基于分水岭的概念. MSE ...

  3. MATLAB基础指令操作

    由于课程实验需要学习使用了MATLAB,在此记录一下MATLAB的基本操作和命令,供参考与查阅. 学习过程中的资料也链接如下: MATLAB矩阵运算:https://wenku.baidu.com/v ...

  4. 彩色模型,CIE XYZ,CIE RGB

    学习DIP第8天 转载请标明出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意. ...

  5. Python 图像处理 OpenCV (1):入门

    引言 又开一个新的系列分享,对图像处理感兴趣的同学可以关注这个系列. 更新频率尽量保持一周两到三次推送. 新系列第一件事儿当然是资源推荐,下面是一些有关 OpenCV 的资源链接: 资源链接: 官方网 ...

  6. opencv——感兴趣区域(ROI)的分析和选取[详细总结]

    引言 在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理.因此,如何选取感兴趣区域呢?(其实就是"抠图"). 在学习opencv的掩码运算后 ...

  7. 60701BMP彩色图像转化为灰度及二值图像

    1 概述 多媒体技术是一门综合了多种学科的新技术,其涉及到计算机科学与技术.通信和网络技术.人工智能技术.微电子技术.数字信号处理.图形处 理技术.声像技术等诸多学科.许多新技术的不断出现和体验,带给 ...

  8. 【查虫日志】快速判断一副灰度图像中是否只有黑色和白色值(即是否为二值图像)过程中bool变量的是是非非。

    二值图像我们在图像处理过程中是经常遇到的,有的时候我们在进行一个算法处理前,需要判断下一副图像的数据是否符合二值图的需求,这个时候我们可以写个简单的函数来做个判断,比如我写了一个很简单的的代码如下: ...

  9. OpenCV二值图像孔洞填充的一个简单方法

    在Matlab下,使用imfill可以很容易的完成孔洞填充操作,感觉这是一个极为常用的方法,然而不知道为什么OpenCV里面却没有集成这个函数.在网上查了好多关于Opencv下的孔洞填充方法,大部分使 ...

随机推荐

  1. 16进制与utf-8

    很多人将数据的存储.传输方式和展现形式混为一谈. 类似的16进制 2进制是讲内容在电脑里面的存储或者传输的一种格式, 而utf-8 gb2312 等是输出的展现的一种格式 不是一回事,另外 gbk包含 ...

  2. C++:多线程001

    C++ 多线程 创建线程的API函数 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//SD:线程安全相关的属性,常置为N ...

  3. React在componentWillMount中请求接口数据结束后再执行render

    1.在getInitialState中初始化isloading,初始值false getInitialState() { return { editionid: '', isloading:false ...

  4. csp-s模拟测试55 联,赛,题题解

    题面:https://www.cnblogs.com/Juve/articles/11610969.html 联: 用线段树维护区间和,要修改成1或0就线段树修改区间和 如果是异或,那么新的区间和就是 ...

  5. 「题解」NOIP模拟测试题解乱写I(29-31)

    NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...

  6. Python3.6爬虫+Djiago2.0+Mysql --数据爬取

    1.下载对应版本的python mysql 模块 我的是:pymssql-2.2.0.dev0-cp36-cp36m-win_amd64.whl 2.手动创建table create table gr ...

  7. php数据结构课程---5、树(树的 存储方式 有哪些)

    php数据结构课程---5.树(树的 存储方式 有哪些) 一.总结 一句话总结: 双亲表示法:data parent:$tree[1] = ["B",0]; 孩子表示法:data ...

  8. JEECMS 自定义标签

    CMS 是”Content Management System” 的缩写,意为” 内容管理系统”. 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场.对于内容管理,业界还没有一个统 ...

  9. springmvc-@RequestBody无法映射首字母大写的属性

    @RequestBody可以将前台传入的json格式数据自动映射成对象,当如果属性的首字母大写,则会出现不能映射的情况,如: private String ICCID;会出现映射失败的情况 解决办法: ...

  10. 记一次log4j日志文件小事故

    最近散仙在做公司的一个跟搜索有关的数据分析项目,主要就是统计搜索的转化率,目的主要有以下几个: (1)通过数据分析挖掘,找出搜索业务在整个平台系统里的GMV里所占份额 (2)给公司的搜索算法调优,提供 ...