怎样用matlab绘制图像

怎样用matlab绘制图像,第1张

1、首先打开电脑上的“matlab”软件,主界面如下图所示

2、在命令行窗口输入命令,绘制出“y=x^2”的函数图像

3、点击回车键后,运行程序,绘制出的函数图像如下图所示。

4、给图像加标题:图像加标题的命令为title('文字'),在命令行输入title('y=x^2的函数图像')。

5、运行命令后,发现图像上面多了一个标题,如下图所示。

6、给坐标轴加标注:给坐标轴加标注的命令为xlabel('x轴')、ylabel('y轴缺闹'),在命令行输入命令。

7、给图形加标注后,绘制的图像如下图所示,洞蔽单引伏颤罩号里面的文字可以自己填写。

8、添加图例命令legend(string1,string2,...),命令行输入legend('y=x^2')。

9、添加图例后,绘制出的图像如下图所示,可以看到添加好的图例。

10、在指定地方添加文本:在指定地方添加文本的命令为text(x,y,string),x和y为添加文本的坐标位置。

11、点击回车键之后,运行命令,指定位置添加文本后图像如下图所示。

运行效果:

测试图像拆圆念:

颜色,文理形状特征比较后的结果,从最相似的往下排,第一个与测试图像最相似:

纹理特征提取程序:

function T =coocurrence(Image)

Color= imread(Image)

Gray=rgb2gray(Color)

[M,N] = size(Gray)

%为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级

for i = 1:M

  for j = 1:N

      for n = 1:256/16

          if (n-1)*16<=Gray(i,j)&Gray(i,j)<=(n-1)*16+15

       腔烂       Gray(i,j) = n-1

          end

      end

  end

end

%计算四个共生矩阵P,取距离为1,角度分别为0,45,90,135

P = zeros(16,16,4)

for m = 1:16

  for n = 1:16

      for i = 1:M

          for j = 1:N

              if j<N&Gray(i,j)==m-1&Gray(i,j+1)==n-1

                  P(m,n,1) = P(m,n,1)+1

                  P(n,m,1) = P(m,n,1)

              end

              if i>1&j<N&Gray(i,j)==m-1&Gray(i-1,j+1)==n-1

                  P(m,n,2) = P(m,n,2)+1

                  P(n,m,2) = P(m,n,2)

              end

              if i<M&Gray(i,j)==m-1&Gray(i+1,j)==n-1

                  P(m,n,3) = P(m,n,3)+1

                  P(n,m,3) = P(m,n,3)

              end

              if i<M&j<N&Gray(i,j)==m-1&Gray(i+1,j+1)==n-1

                  P(m,n,4) = P(m,n,4)+1

                  P(n,m,4) = P(m,n,4)

              end

          end

      end

      if m==n

          P(m,n,:) = P(m,n,:)*2

      end

  end

end

% 对共生矩阵归一化

for n = 1:4

  P(:,:,n) = P(:,:,n)/sum(sum(P(:,:,n)))

end

%对共生矩阵计算能量、熵、惯性矩、相关性4个纹理参数

H = zeros(1,4)

I = H

Ux = H 旅困    Uy = H

deltaX= H deltaY = H

C =H

for n = 1:4

  E(n) = sum(sum(P(:,:,n).^2))%%能量

  for i = 1:16

      for j = 1:16

          if P(i,j,n)~=0

              H(n) = -P(i,j,n)*log(P(i,j,n))+H(n)%%熵

          end

          I(n) = (i-j)^2*P(i,j,n)+I(n) %%惯性矩

       

          Ux(n) = i*P(i,j,n)+Ux(n)%相关性中μx

          Uy(n) = j*P(i,j,n)+Uy(n)%相关性中μy

      end

  end

end

for n = 1:4

  for i = 1:16

      for j = 1:16

          deltaX(n) = (i-Ux(n))^2*P(i,j,n)+deltaX(n)%相关性中σx

          deltaY(n) = (j-Uy(n))^2*P(i,j,n)+deltaY(n)%相关性中σy

          C(n) = i*j*P(i,j,n)+C(n)         

      end

  end

  C(n) = (C(n)-Ux(n)*Uy(n))/deltaX(n)/deltaY(n)%相关性

end

%求能量、熵、惯性矩、相关性的均值和标准差作为最终8维纹理特征

a1 = mean(E)

b1 = sqrt(cov(E))

a2 = mean(H)

b2 = sqrt(cov(H))

a3 = mean(I)

b3 = sqrt(cov(I))

a4 = mean(C)

b4 = sqrt(cov(C))

T=[a1,a2,a3,a4,b1,b2,b3,b4]

T=T/sum(T)

图像匹配检索程序:

function [Sorted, ISorted,nResults,files]=searchImage(imageName, modelName)

% 找到最相近的图像

[Sorted, ISorted] = sort(Similarity)

Sorted=Sorted/sum(Sorted)

switch similaritymesure>Sorted(Nfiles)

  case 1

      nResults=Nfiles

      msgbox(['调节相似度过大,请重新定值,最大值为' num2str(Sorted(Nfiles))])

   

  case 0

for i=1:Nfiles

 if Sorted(i)>=similaritymesure

      nResults=i

      break

  end

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12362117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存