我正在开发一个基于内容的图像检索(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);