手记

Matlab Image与Plot 在统一画图框显示 椭圆

已知:椭圆的长轴端点左边
短轴长度
画椭圆。

clc
clear all
close all

syms x y;
x1=900;%坐标1
y1=720;

x2 = 1144;%坐标2
y2 = 622;
%% 图片参数设置
imgH = 512;% y
imgW = 800;% x
%% 椭圆参数设置
a = sqrt((x1-x2)^2 + (y1-y2)^2)/2;%半长轴
b = 0.5*a;%半短轴  任意认为固定
c = sqrt(a^2-b^2);%半焦距

e = c/a;%离心率(0<e<1),e=0时为圆,e接近椭圆
x0 = (x2 + x1)/2;%椭圆心 x 坐标
y0 = (y2 + y1)/2;%椭圆心 y 坐标

cosTheta = (x1-x2)/sqrt((x1-x2)^2+(y1-y2)^2);
theta = acos(cosTheta);%倾斜角
%% 任意椭圆公式
f = (a^2-c^2*cos(theta)^2)*(x-x0).^2  + (a^2-c^2*sin(theta)^2)*(y-y0).^2  -  c^2*sin(2*theta)*(x-x0).*(y-y0) - a^2*b^2 ;

%%  图片
Im2=imread('test.jpg');
ImB=imresize(Im2,[imgH,imgW]);
%%  叠加

imshow(Im2);
hold on
plotIm = ezplot(f,[-1.5*a+x0,1.5*a+x0,-1.5*a+y0,1.5*a+y0,]);
plotIm.Color = 'r';
plotIm.LineWidth = 10;
axis off

saveas(gcf,'result.jpg');
2人推荐
随时随地看视频
慕课网APP