matlab界面UI设计资料

一个实现图像灰度处理并归类于某已知相似图片的程序

软件:matlab2017a

算法:HU检索图像算法、Zernike算法

资料:

①:

matlab遍历文件夹下所有图片和遍历所有子文件夹下图片 - 专于技术,相信自我 - 博客园

https://www.cnblogs.com/tansuoxinweilai/p/9990191.html

②:

matlab设计gui文本框,怎么获取文本框输入的字符呢?_百度知道
https://zhidao.baidu.com/question/751372596254114212.html

ARMA Model Specifications - MATLAB & Simulink - MathWorks 中国
https://ww2.mathworks.cn/help/econ/arma-models.html?searchHighlight=arma&s_tid=doc_srchtitle

④:

MATLAB产生各种分布的随机数 - 百度文库
https://wenku.baidu.com/view/daa8cfeb02020740bf1e9b70.html

HU算法:用返回的七维向量作为一个图像的特征

%**************************************************************************
%图像检索——形状特征提取
%利用HU的七个不变矩作为形状特征向量
%Image : 输入图像数据
%n: 返回七维形状特征行向量
%**************************************************************************
function n = Shape(Image)

Image = imread(‘C:\Users\linuas\Desktop\test.jpg’);
[M,N,O] = size(Image);
M = 256;
N = 256;

%--------------------------------------------------------------------------
%彩色图像灰度化
%--------------------------------------------------------------------------
Gray = double(0.3Image(:,:,1)+0.59Image(:,:,2)+0.11*Image(:,:,3));

%--------------------------------------------------------------------------
%用Canny边缘检测提取边缘保留边缘灰度图像
%--------------------------------------------------------------------------
% BW = uint8(edge(Gray,‘canny’));
Egray = uint8(edge(Gray,‘canny’));
for i = 1:M
for j = 1:N
if Egray(i,j)==0
Gray(i,j)=0;
end
end
end

%--------------------------------------------------------------------------
%Otsu提出的类判别分析法自动为每一幅廓图像选定阈值,然后用该阈值对图像二值化
%--------------------------------------------------------------------------
%计算灰度级归一化直方图
for i = 0:255
h(i+1) = size(find(Grayi),1);
end
p = h/sum(h);
%计算灰度均值
ut = 0;
for i = 0:255
ut = ip(i+1)+ut;
end
%计算直方图的零阶累积矩和一阶累积矩:
for k = 0:254
w(k+1) = sum(p(1:k+1));
u(k+1) = sum((0:k).p(1:k+1));
end
%计算类分离指标
deltaB = zeros(1,255);
for k = 0:254
if w(k+1)=0&w(k+1)=1
deltaB(k+1) = (ut
w(k+1)-u(k+1))^2/(w(k+1)
(1-w(k+1)));
end
end
[value,thresh] = max(deltaB);
% deltaB = zeros(1,255);
% delta1 = zeros(1,255);
% delta2 = zeros(1,255);
% deltaW = zeros(1,255);
% for k = 0:254
% if w(k+1)=0&w(k+1)=1
% deltaB(k+1) = (utw(k+1)-u(k+1))^2/(w(k+1)(1-w(k+1)));
% delta1(k+1) = 0;
% delta2(k+1) = 0;
% for i = 0:k
% delta1(k+1) = (i-u(k+1)/w(k+1))^2p(i+1)+delta1(k+1);
% end
% for i = k+1:255
% delta2(k+1) = (i-(ut-u(k+1))/(1-w(k+1)))^2
p(k+1)+delta2(k+1);
% end
% deltaW(k+1) = delta1(k+1)+delta2(k+1);
% end
% end
% for i = 1:255
% if deltaB
0
% yita=0;
% else
% yita(i) = 1/(1+deltaW(i)./deltaB(i));
% end
% end
% % D的最大值作为最佳阈值
% [value,thresh] = max(yita);

%对图像二值化
for i = 1:M
for j = 1:N
if Gray(i,j)>=thresh
BW(i,j) = 1;
else
BW(i,j) = 0;
end
end
end

%--------------------------------------------------------------------------
%计算图像质心:(I,J)
%--------------------------------------------------------------------------
m00 = sum(sum(BW)); %零阶矩
m01 = 0; %一阶矩
m10 = 0; %一阶矩
for i = 1:M
for j = 1:N
m01 = BW(i,j)*j+m01;
m10 = BW(i,j)*i+m10;
end
end
I = (m10)/(m00);
J = m01/m00;

%--------------------------------------------------------------------------
%中心矩:
%--------------------------------------------------------------------------
u11 = 0;
u20 = 0; u02 = 0;
u30 = 0; u03 = 0;
u12 = 0; u21 = 0;
for i = 1:M
for j = 1:N
u20 = BW(i,j)(i-I)^2+u20;
u02 = BW(i,j)
(j-J)^2+u02;
u11 = BW(i,j)(i-I)(j-J)+u11;
u30 = BW(i,j)(i-I)^3+u30;
u03 = BW(i,j)
(j-J)^3+u03;
u12 = BW(i,j)(i-I)(j-J)^2+u12;
u21 = BW(i,j)(i-I)^2(j-J)+u21;
end
end
u20 = u20/m00^2;
u02 = u02/m00^2;
u11 = u11/m00^2;
u30 = u30/m00^(5/2);
u03 = u03/m00^(5/2);
u12 = u12/m00^(5/2);
u21 = u21/m00^(5/2);
%--------------------------------------------------------------------------
%7个Hu不变矩:
%--------------------------------------------------------------------------
n(1) = u20+u02;
n(2) = (u20-u02)2+4*u112;
n(3) = (u30-3u12)2+(u03-3*u21)2;
n(4) = (u30+u12)2+(u03+u21)2;
n(5) = (u30-3
u12)(u30+u12)((u30+u12)2-3*(u03+u21)2)+(u03-3u21)(u03+u21)((u03+u21)2-3*(u30+u12)2);
n(6) = (u20-u02)
((u30+u12)2-(u03+u21)2)+4u11(u30+u12)(u03+u21);
n(7) = (3
u21-u03)(u30+u12)((u30+u12)2-3*(u03+u21)2)+(u30-3u12)(u03+u21)((u03+u21)2-3*(u30+u12)2);% %--------------------------------------------------------------------------
% %内部归一化:
% %--------------------------------------------------------------------------
en = mean(n);
delta = sqrt(cov(n));
n = abs(n-en)/(3
delta);

原文:https://www.cnblogs.com/ljy1227476113/archive/2019/06/05/10980394.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个不错的Matlab的gui界面设计实例 精美日历 function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1; end end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.6,0.66,0.12,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String','clock','fontsize',18,'fontname','times new roman'); Tq=uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.74,0.66,0.17,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman'); sq='The calendar'; uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.14,0.86,0.37,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman','string',sq); try while 1 set(Tq,'String',datestr(now,13)); pause(1); end end

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值