matlab 鼠标自定义选中图像的任意区域

在图片上,使用鼠标选点的方式,截取出任意形状包围的区域。

废话不多说,直接上代码:

%鼠标选中特定区域(支持单个区域选取)
clc;clear all;close all;
load matlab.mat
I1=I;
figure,imagesc(I1);
hold on
[x,y,flag]=ginput(1);
m(1)=x;
n(1)=y;
k=2;
while(flag==1)
    [x1,y1,flag1]=ginput(1);
    if flag1==1
        m(k)=x1;n(k)=y1;
        line([m(k-1) m(k)],[n(k-1) n(k)],'color','r');
        k=k+1;
        flag=flag1;
    else
        break
    end
end
line([m(k-1) m(1)],[n(k-1) n(1)],'color','r');
BW = roipoly(I1,m,n); 
mask=uint8(BW);
figure,imagesc(mask);            %生成的标签
save('C:\Users\Desktop\新建文件夹\代码\mask.mat','mask');%保存标签

I2=double(I1).*double(BW);
% figure,imagesc(I2);

结果:

代码来源:https://www.ilovematlab.cn/thread-111922-1-1.html

 一些别的方法:https://blog.csdn.net/u010125984/article/details/110498768

本代码仅支持单个区域的选取,对于多个区域的选取代码请参见:

https://download.csdn.net/download/qq_30815237/21380236

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值