Выбор эллипса в качестве области интереса (ROI)
Я использовал imellipse
выбрать эллипс в качестве моей области интересов (ROI). Проблема в том, что эллипс, который я хочу выбрать, составляет около 45 градусов, и, когда я использую imellipse
Кажется, это 90 градусов по горизонтали или вертикали.
Как я могу изменить ориентацию эллипса?
Благодарю.
1 ответ
Вам нужно повернуть координаты эллипса. Как это:
npts = 1e4;
t = linspace(0,2*pi,npts);
theta = pi/4;
aspect = [5 1]; % [x y]
x = aspect(1)*sin(t+theta);
y = aspect(2)*cos(t);
plot(x, y);
Если вы хотите использовать imellipse
Чтобы нарисовать эллипс на изображении, вы можете извлечь вершины и преобразовать их:
figure, imshow('pout.tif');
h = imellipse;
exy = h.getVertices
theta = pi/12;
M = [cos(theta), sin(theta); -sin(theta), cos(theta)]
exy_centered = bsxfun(@minus,exy,mean(exy))
exyRot = bsxfun(@plus,exy_centered*M,mean(exy));
hold on
plot(exyRot(:,1),exyRot(:,2),'r') % orig: plot(exy(:,1),exy(:,2),'r')
Чтобы заполнить эллипс, создавая маску, используйте roifill
или же roipoly
:
w=getfield(imfinfo('pout.tif'),'Width');
h=getfield(imfinfo('pout.tif'),'Height');
bw = roipoly(zeros(h,w),exyRot(:,1),exyRot(:,2));