在MATLAB中定义掩码的代码

我正在开发一个基于内容的图像检索(CBIR)系统,需要按以下方式分割我的RGB图像:

我想将图像分割的区域

我在MATLAB中实现代码,但无法构建合适的掩码。我使用了imellipse,但这需要图像句柄,而图像句柄是通过imshow获得的,但我不想显示我的图像。我的代码是

img=imread('peppers.png');h_im=imshow(img); %我想去掉imshow,因为我不希望显示图像[height, width, planes]=size(img);%(cX,cY)是图像中心cX=width/2;cY=(height)/2;%在这里我定义我的ROI,这是一个椭圆,延伸到图像高度和宽度的75%e=imellipse(gca,[(1/2-3/8)*width, (1/2-3/8)*height,(3/4)*width,(3/4)*height]);mymask=createMask(e,h_im);%将掩码扩展到三个通道mymask=repmat(mymask,[1 1 3]);ROI=img;ROI(mymask==0)=0;figure, imshow(ROI);

输出图像


回答:

这有点像一个小技巧,但你可以创建一个“隐藏”的图形窗口。我唯一做的改动是在你的代码开始处添加了:figure('Visible', 'off')

figure('Visible', 'off');img=imread('peppers.png');h_im = imshow(img); %我想去掉imshow,因为我不希望显示图像[height, width, planes]=size(img);%(cX,cY)是图像中心cX=width/2;cY=(height)/2;%在这里我定义我的ROI,这是一个椭圆,延伸到图像高度和宽度的75%e=imellipse(gca,[(1/2-3/8)*width, (1/2-3/8)*height,(3/4)*width,(3/4)*height]);mymask=createMask(e,h_im);%将掩码扩展到三个通道mymask=repmat(mymask,[1 1 3]);ROI=img;ROI(mymask==0)=0;figure, imshow(ROI);

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注