屏蔽多个部分的图像

15的观点(30天)
nms09
nms09 2022年5月19日
评论道: nms092022年5月23日
你好,我是新MATLAB和致力于一个项目,我需要面具多个小部件相同的形象。我在很多地方了,还没有找到一种方法,通过代码或手动,但我想我可能是在错误的地方或者解决方案是比我想象的容易,谁能告诉我对一个函数/文档/ post这样做吗?我需要一个不同的工具箱/产品为了完成这个吗?提前谢谢你!
3评论
图像分析
图像分析 2022年5月19日
编辑:图像分析 2022年5月19日
需要更多的信息。所以在你读这篇文章:
附上你的图像和描述你想要的部分面具,说无论你想戴面具的手动或自动。
看到我的图像分割教程文件交换:

登录置评。

接受的答案

为副总经理
为副总经理 2022年5月19日
编辑:为副总经理 2022年5月19日
至于用多个圆形区域创建一个面具,您可以使用ROI的工具。
你可以以交互方式是这样的:
一个= imread (“peppers.png”);%得到一个图像
ncircles = 4;%多少圈?
imshow (iminv (A))%设置轴
k = 1: ncircles
投资回报率= drawcircle (gca);%手工画圆圈
%收集的面具
如果k = = 1
掩码= createMask (ROI);
其他的
掩码=面具| createMask (ROI);
结束
结束
imshow(面具)%显示生成的面具
显然,我不能做互动论坛编辑器上的任务,但是这是假设的结果。
如果你已经知道圆的位置,想通过编程创建面具,你仍然可以使用相同的ROI工具:
一个= imread (“peppers.png”);%得到一个图像
%中心和半径(像素)
C = (151 276;216 104;333 225;367 98);
R = [47;39;36个;64);
imshow (iminv (A))%设置轴
k = 1:元素个数(右)
投资回报率= images.roi.Circle (gca);%创建一个ROI对象
ROI。半径= R (k);%指定它的大小和位置
ROI。中心= C (k,:);
%收集的面具
如果k = = 1
掩码= createMask (ROI);
其他的
掩码=面具| createMask (ROI);
结束
结束
imshow(面具)%显示生成的面具
…在这种情况下,我选择复制我手动选择在第一个例子的坐标。
至于如何使用面具结合图片,您可以使用逻辑索引。这是有限的在很多方面。它不能支持线性(光万博1manbetx滑)的面具,它使需要显式阵列扩张变得更加繁琐。
FG = imread (“purppep.png”);%这是前台为叠加
%这依赖于拥有相同的数字图像类
%,要求图像具有相同数量的渠道
%这只会工作,如果面具是一个逻辑数组或关键单位比例浮动
掩码= repmat(面具,[1 1 3]);
outpict = BG;
outpict(面具)= FG(面具);
imshow (outpict)
做基本的线性(乘法)组成一个简单的方法是使用二进制和线性面具:
FG = imread (“purppep.png”);
%说你有一个平滑的或平滑的面具
掩码= imgaussfilt (im2double(面具),5);%进行平滑面具的逻辑
%这个隐式扩张需要bsxfun R2016b之前
outpict = im2double (FG)。*面具+ im2double (BG)。* (1-mask);
outpict = im2uint8 (outpict);
imshow (outpict)
除了在论坛上,我不使用方法。 MIMT 工具replacepixels()和imblend()可以用于大多数混合/成分的需要。
FG = imread (“purppep.png”);
%说你有一个平滑的或平滑的面具
掩码= imgaussfilt (im2double(面具),5);%进行平滑面具的逻辑
%简洁,class-agnostic depth-agnostic
%也支持线性R万博1manbetxGB
outpict = replacepixels (FG, BG,面具,“线性”);
imshow (outpict)
1评论
nms09
nms09 2022年5月23日
这帮助很大,非常感谢!

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!