问题描述:给出一幅彩色图像和一张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. Python全栈开发:运算符

    1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算:

  2. php7 mysql_pconnect() 缺失 解决方法

    php7 兼容 MySQL 相关函数 PHP7 废除了 ”mysql.dll” ,推荐使用 mysqli 或者 pdo_mysql http://PHP.net/manual/zh/mysqlinfo ...

  3. pg总览

    一.编译安装初始化等 ./configure --prefix=/release --with-openssl --without-ldap --with-libxml - -enable-threa ...

  4. C++构造与析构函数中调用虚函数的问题

    前些天想把以前写的内存池算法重写一遍,跨平台是第一目标,当时突发奇想,因为不愿意做成一大堆#if..#end,所以想利用C++的多态性,但是怎么让内存池完好退出却没想到自认为完美的方案.但是一个很偶然 ...

  5. ES6数组对象新增方法

    1. Array.from() Array.from方法用于将两类对象转为真正的数组:类数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的 ...

  6. Android基础控件单选按钮RadioButton和Checkbox复选按钮的使用

    1.相关简介 RadioButton需要和RadioGroup结合使用,在RadioGroup设置布局方式! Checkbox是单独使用,本文为了方便放在了RadioGroup中! 2.简单使用 方法 ...

  7. 密码学笔记(4)——RSA的其他攻击

    上一篇详细分析了几种分解因子的算法,这是攻击RSA密码最为明显的算法,这一篇中我们考虑是否有不用分解模数n就可以解密RSA的密文的方法,这是因为前面也提到,当n比较大的时候进行分解成素数的乘积是非常困 ...

  8. Spring MVC(八)--控制器接受简单列表参数

    有些场景下需要向后台传递一个数组,比如批量删除传多个ID的情况,可以使用数组传递,数组中的ID元素为简单类型,即基本类型. 现在我的测试场景是:要从数据库中查询minId<id<maxId ...

  9. 关于c.toArray might (incorrectly) not return Object[] (see 6260652)的问题解答

    最近学习jdk1.8源码时,发现ArrayList(Collection<? extends E> c)这个构造函数中,有句有意思的描述:c.toArray might (incorrec ...

  10. 用this 对方法的扩展

    *都是静态方法 this指向的是调用的object*