Я работаю над созданием системы CBIR, где я должен сегментировать мой RGB изображение следующим образом:код для определения маски в MATLAB
Я реализую код в MATLAB, но я я не могу создать для него подходящие маски. Я использовал imellipse
, но для этого требуется ручка изображения, которая достигается с помощью imshow
, но я не хочу показывать свое изображение. Мой код
img=imread('peppers.png');
h_im=imshow(img); %I want to get rid of imshow because I don't want to show the image
[height, width, planes]=size(img);
%(cX,cY) is image center
cX=width/2;
cY=(height)/2;
%Here I define my ROI which is an ellipse that stretches to 75 percent of
%height and width of the image
e=imellipse(gca,[(1/2-3/8)*width, (1/2-3/8)*height,(3/4)*width,(3/4)*height]);
mymask=createMask(e,h_im);
%extending mask to three channels
mymask=repmat(mymask,[1 1 3]);
ROI=img;
ROI(mymask==0)=0;
figure, imshow(ROI);
Это, кажется, работает для меня, Спасибо !, можете ли вы предложить мне некоторый подход к определению масок, чтобы получить регионы с номерами 1, 2, 3 и 4? – user164013