用 matlab 对图像进行局部提取(一)

问题描述:

现在有两张蝴蝶图(如下图),对黑白蝴蝶图命名为 a.jpg , 彩色蝴蝶图命名为 b.jpg。
目标是取出来b图中的彩色蝴蝶,其他部分不提取。

(该图片的链接: https://pan.baidu.com/s/1Rd9_DtGa9Xt6ilwFtotYaQ 密码: 0hw1)
在这里插入图片描述

在这里插入图片描述

方法一:

代码如下:
clear;clc;close all;
a=imread('a.jpg');   %a是灰度图。(因为黑白图,其矩阵里元素的值都是0255)
b=imread('b.jpg');   %b是原图,也是三维的彩图
figure,imshow(a);    
figure,imshow(b);

c=cat(3,a,a,a);      %三张二维灰度图a叠加在一起,形成彩图c,此时彩图c矩阵的值依旧是0-255(不确定的话可以看一下矩阵里面的元素,就会发现都是0255%因为虽然是彩图,但是a是灰度图,且是黑白图,所以三张叠加之后还是黑白图,只不过我们目的是想让它变为三维的
                    
d=c./255;            %除以255,得到的彩图d。矩阵里元素的值都是01。

e=d.*b;              %此时乘以彩图b,(三维矩阵乘以三维矩阵)。由于0乘以任何数都是0,也就是黑色,此时把背景给屏蔽了
                     %蝴蝶的话因为是用1乘的,其值不变,所以还是彩色
figure;imshow(e);    

运行截图:

  • 38
    点赞
  • 303
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值