2021—2022学年第一学期寒假学习记录12

2022.01.12,今天是服务外包竞赛:随便拿个奖队的项目进行的第十二天,今天根据项目要求继续学习matlab数字图像处理

Clf   ‘为:清除figure窗口中的内容,并不关闭figure窗口;

Figure  ‘为:打开一个新的figure窗口;

Close   ‘为:关闭一个figure窗口;

Close all  ‘为:关闭所有的figure图形窗口;

Title(‘标题‘) ‘为:为图形输入标题;

Text(x,y,’文字’)‘为:在figure窗口的(x,y)坐标处输入文字“字符串”;

View(2)   ‘为:把图形跳回到二维显示;

View(3)   ‘为:把图形跳回到三维显示;

Grid on     ‘为:显示栅格;

Hold on     ‘为:保持当前figure窗口图形;

Xlabel(’文字’)、ylabel(‘文字’)、zlabel(‘文字’)‘为:定义X,Y,Z轴;

Axis(‘square‘)为:使得XYZ坐标长度相等;

Axis([a,b,c,d,e,f])  ‘为:定义a<x<b,c<y<d,e<z<f坐标范围;

Plot(x,y,’:dm’)  ‘为:作xy图,线性为虚线(“:”),标记为菱形(“d”),颜色为洋红色(“m”);

p=Polyfit(x,y,m)‘为:用m项式拟合x,y数据;

xi=1:0.1:10

yi=Polyval(p,xi)‘为:求得多项式p在xi内的值,并且赋值给yi;

 

定义一个inline函数:>> fun=inline('x^2+5','x')

fun =

     Inline function:

     fun(x) = x^2+5

>> fun(4)

ans =

21   (或者写成:feval(fun,4),结果也是一样的等于21)

 

定义一个匿名函数:>> fun=@(x)x^2

fun =

    @(x)x^2

>> feval(fun,5)   ‘用feval函数求相应的值;

ans =

    25

返回函数的最大最小值:

>> y=[5,7,8,33545,0];

>> max(y)

ans =

       33545

>> min(y)

ans =

     0

 

 

 

 

有关 figure的相关函数:

(1)在figure窗口输入数据:

Gtext(‘字符串‘)   ‘为:在figure窗口处插入相应字符串;

gtext({'我爱你!','i love you !','jtame'})  ‘为:一次性分三行在figure输入:芳~我爱你!

                                                                     i love you !

                                                                     jtame

gtext({'我爱你!';'i love you !';'jtame'})   ‘为:分三次在三个地方输入:芳~我爱你!  i love you !  jtame

(2)在figure窗口提取数据:

>>Ginput          ‘在figure窗口中选区任意个点,在按下回车键后返回点的坐标值;

>>[x,y]=ginput       ‘在figure窗口中选区任意个点,在按下回车键后返回点的坐标值给

x,y;

>>[x,y]=ginput(4)       ‘在figure窗口中选区4个点,在按下回车键后返回点的坐标值给

x,y;

>>[x,y,button] = ginput( )   ‘返回x和y的坐标,以及button值(1=左键,2=中,3=右)或者按键的ASXII码值。

 

>> Clc             ‘为:清除窗口并且光标回到原始处;   

 

(3)提取图片中曲线的数据:

如图:

假设图片保存在D盘,图片名字为:一般图像.jpg,jpg格式。

打开matlab ,如下输入:

>> y=imread('d:\一般图像.jpg'); %读取该图

>> imshow(y)  %显示该图

>> set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点

>> [x0,y0] = ginput; %利用鼠标取点,按回车键结束。这个时候应顺序点取图中坐标轴

左下,左上,右上,右下四个点。

>> [x1,y1] = ginput; %开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束

%因为位图的屏幕坐标是从左上角为坐标原点开始的,需要做些变换:

>> x1= (x1-min(x0))*350/(max(x0)-min(x0))+375;%如果坐标原点不为0,则需在该轴加上

省的坐标轴数(此处为x轴加上375);350是图像轴的标长;

>> y1=(y1-max(y1))*3.5*10^5/(min(y0)-max(y0)); %y轴做同样的处理;

>> plot(x1,y1,'k.','Markersize',5); %画图,设置为黑色的点图

>> axis([400,700,0,350000]);%定义坐标范围

>> set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于观察

 

另外一种方法:

如图:


    im=imread('D:\一般图像.jpg');%读入图片
    [y,x]=find(im==0);%找出图形中的“黑点”的坐标。该坐标是一维数据。
    y=max(y)-y;%将屏幕坐标转换为右手系笛卡尔坐标
    y=fliplr(y);%fliplr()——左右翻转数组
    plot(x,y,'r.','Markersize', 2);
    disp('请在Figrure中先后点击实际坐标框的两个顶点,即A、B两点. ');
    [Xx,Yy]=ginput(2);%Xx,Yy——指实际坐标框的两个顶点
    min_x=input('最小的x值');%输入x轴最小值
    max_x=input('最大的x值');%输入x轴最大值
    min_y=input('最小的y值');%输入y轴最小值
    max_y=input('最大的y值');%输入y轴最大值
    x=(x-Xx(1))*(max_x-min_x)/(Xx(2)-Xx(1))+min_x;
    y=(y-Yy(1))*(min_y-max_y)/(Yy(2)-Yy(1))+max_y;
    plot(x,y,'r.','Markersize', 2);

   axis([375,725,0,350000])%根据要求设置坐标范围

 

 



 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
2021—2022学年第一学期寒假学习记录12 2021—2022学年第一学期寒假学习记录12 2021—2022学年第一学期寒假学习记录12 2021—2022学年第一学期寒假学习记录12   TRANSLATE with 2021—2022学年第一学期寒假学习记录12 COPY THE URL BELOW 2021—2022学年第一学期寒假学习记录12 2021—2022学年第一学期寒假学习记录12 Back EMBED THE SNIPPET BELOW IN YOUR SITE 2021—2022学年第一学期寒假学习记录12 Enable collaborative features and customize widget: Bing Webmaster Portal Back
上一篇:threejs 点击物体射线检测碰撞


下一篇:《Python入门到精通》函数