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

软件: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 = ;
N = ; %--------------------------------------------------------------------------
%彩色图像灰度化
%--------------------------------------------------------------------------
Gray = double(0.3*Image(:,:,)+0.59*Image(:,:,)+0.11*Image(:,:,)); %--------------------------------------------------------------------------
%用Canny边缘检测提取边缘保留边缘灰度图像
%--------------------------------------------------------------------------
% BW = uint8(edge(Gray,'canny'));
Egray = uint8(edge(Gray,'canny'));
for i = :M
for j = :N
if Egray(i,j)==
Gray(i,j)=;
end
end
end %--------------------------------------------------------------------------
%Otsu提出的类判别分析法自动为每一幅廓图像选定阈值,然后用该阈值对图像二值化
%--------------------------------------------------------------------------
%计算灰度级归一化直方图
for i = :
h(i+) = size(find(Gray==i),);
end
p = h/sum(h);
%计算灰度均值
ut = ;
for i = :
ut = i*p(i+)+ut;
end
%计算直方图的零阶累积矩和一阶累积矩:
for k = :
w(k+) = sum(p(:k+));
u(k+) = sum((:k).*p(:k+));
end
%计算类分离指标
deltaB = zeros(,);
for k = :
if w(k+)~=&w(k+)~=
deltaB(k+) = (ut*w(k+)-u(k+))^/(w(k+)*(-w(k+)));
end
end
[value,thresh] = max(deltaB);
% deltaB = zeros(,);
% delta1 = zeros(,);
% delta2 = zeros(,);
% deltaW = zeros(,);
% for k = :
% if w(k+)~=&w(k+)~=
% deltaB(k+) = (ut*w(k+)-u(k+))^/(w(k+)*(-w(k+)));
% delta1(k+) = ;
% delta2(k+) = ;
% for i = :k
% delta1(k+) = (i-u(k+)/w(k+))^*p(i+)+delta1(k+);
% end
% for i = k+:
% delta2(k+) = (i-(ut-u(k+))/(-w(k+)))^*p(k+)+delta2(k+);
% end
% deltaW(k+) = delta1(k+)+delta2(k+);
% end
% end
% for i = :
% if deltaB==
% yita=;
% else
% yita(i) = /(+deltaW(i)./deltaB(i));
% end
% end
% % D的最大值作为最佳阈值
% [value,thresh] = max(yita); %对图像二值化
for i = :M
for j = :N
if Gray(i,j)>=thresh
BW(i,j) = ;
else
BW(i,j) = ;
end
end
end %--------------------------------------------------------------------------
%计算图像质心:(I,J)
%--------------------------------------------------------------------------
m00 = sum(sum(BW)); %零阶矩
m01 = ; %一阶矩
m10 = ; %一阶矩
for i = :M
for j = :N
m01 = BW(i,j)*j+m01;
m10 = BW(i,j)*i+m10;
end
end
I = (m10)/(m00);
J = m01/m00; %--------------------------------------------------------------------------
%中心矩:
%--------------------------------------------------------------------------
u11 = ;
u20 = ; u02 = ;
u30 = ; u03 = ;
u12 = ; u21 = ;
for i = :M
for j = :N
u20 = BW(i,j)*(i-I)^+u20;
u02 = BW(i,j)*(j-J)^+u02;
u11 = BW(i,j)*(i-I)*(j-J)+u11;
u30 = BW(i,j)*(i-I)^+u30;
u03 = BW(i,j)*(j-J)^+u03;
u12 = BW(i,j)*(i-I)*(j-J)^+u12;
u21 = BW(i,j)*(i-I)^*(j-J)+u21;
end
end
u20 = u20/m00^;
u02 = u02/m00^;
u11 = u11/m00^;
u30 = u30/m00^(/);
u03 = u03/m00^(/);
u12 = u12/m00^(/);
u21 = u21/m00^(/);
%--------------------------------------------------------------------------
%7个Hu不变矩:
%--------------------------------------------------------------------------
n() = u20+u02;
n() = (u20-u02)^+*u11^;
n() = (u30-*u12)^+(u03-*u21)^;
n() = (u30+u12)^+(u03+u21)^;
n() = (u30-*u12)*(u30+u12)*((u30+u12)^-*(u03+u21)^)+(u03-*u21)*(u03+u21)*((u03+u21)^-*(u30+u12)^);
n() = (u20-u02)*((u30+u12)^-(u03+u21)^)+*u11*(u30+u12)*(u03+u21);
n() = (*u21-u03)*(u30+u12)*((u30+u12)^-*(u03+u21)^)+(u30-*u12)*(u03+u21)*((u03+u21)^-*(u30+u12)^);% %--------------------------------------------------------------------------
% %内部归一化:
% %--------------------------------------------------------------------------
en = mean(n);
delta = sqrt(cov(n));
n = abs(n-en)/(*delta);

matlab界面UI设计资料的更多相关文章

  1. 【cocos2d-x 手游研发----界面UI设计】

    简单探讨一下如何在cocos2d-x的游戏引擎里面去制作各做交互UI界面,常见的UI如下: 人物头像,血条值,经验条,技能按钮,以及各种玩家交互的界面按钮:背包,人物属性,门派,等: 类似上面的图示交 ...

  2. 数据可视化界面UI设计大屏展示

  3. UI设计(流程/界面)设计规范

    1.UI设计基本概念与流程 1.1 目的 规范公司UI设计流程,使UI设计师参与到产品设计整个环节中来,对产品的易用性进行全流程负责,使UI设计的流程规范化,保证UI设计流程的可操作性. 1.2范围  ...

  4. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面

    [Android UI设计与开发]第05期:引导界面(五)实现应用程序只启动一次引导界面 jingqing 发表于 2013-7-11 14:42:02 浏览(229501) 这篇文章算是对整个引导界 ...

  5. UI设计实战篇——利用Bootstrap框架制作查询页面的界面

    Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大).尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不 ...

  6. 免费素材:25套免费的 Web UI 设计的界面元素(转)

    Web 元素是任何网站相关项目都需要的,质量和良好设计的元素对于设计师来说就像宝贝一样.如果您正在为您的网站,博客,Web 应用程序或移动应用程序寻找完美设计的网页元素,那么下面这个列表会是你需要的. ...

  7. UI Prototype Design IDE( 界面原型设计工具 )

    UI Prototype Design IDE( 界面原型设计工具 )   如何用工具去与客户进行交流,互动,定义要做的系统,什么什么的... 0.Balsamiq Mockups http://ww ...

  8. 最近因为突然喜欢这方面的ui设计,所以搜刮了很多我试过可用性强的界面,又可爱又实用···分享给大家咯

    最近因为突然喜欢这方面的ui设计,所以搜刮了很多我试过可用性强的界面,又可爱又实用···分享给大家咯 1.Side-Menu.Android 分类侧滑菜单,Yalantis 出品. 项目地址:http ...

  9. 设计师们做UI设计和交互设计、界面设计等一般会去什么网站呢?

    明明可靠颜值吃饭,却偏偏要靠才华立身,UI设计师就是这样一群神奇的物种.面对“大的同时小一点”.“五彩斑斓黑”.“下班之前给我”……这些甲方大大刁钻的需求,设计师每天都在咬牙微笑讨生活.你可以批评我的 ...

随机推荐

  1. Zookeeper的缺点

    工作中对Zookeeper都是间接比较浅的使用,性能也没太高的要求所以对它的缺点也没太深的认识,从网上评价看,它还是有不少问题的. 1. 原生客户端坑太多,Curator(Curator是Netfli ...

  2. 某神奇的cf跳转插件

    // ==UserScript== // @name Codeforces快速跳转菜单 // @namespace http://tampermonkey.net/ // @version 2019. ...

  3. 08-图8 How Long Does It Take (25 分)

    Given the relations of all the activities of a project, you are supposed to find the earliest comple ...

  4. nginx 常用全局变量

    变量 说明 $args 请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2 $content_length HTTP请求信息里的" ...

  5. win10中通过Anaconda安装tensorflow时报错Traceback (most recent call last): File “E:\Anaconda3\lib\site-packages\pip_vendor\urllib3\response.py”, line 360, in _error_catcher yield

    问题:通过默认镜像安装,下载过程中可能会报错,下载安装失败 Traceback (most recent call last): File “E:\Anaconda3\lib\site-package ...

  6. linux 排查cpu负载过高异常

    步骤一.找到最耗CPU的进程 工具:top 方法: 执行top -c ,显示进程运行信息列表 键入P (大写p),进程按照CPU使用率排序 图示: 如上图,最耗CPU的进程PID为10765 步骤二: ...

  7. 解决启动redis出现的creating server tcp listening socket *:6379: listen: unknown error

    今天运行redis服务端时候出现这个问题: D:\php\software\redis>redis-server.exe [] Dec ::00.797 # Warning: no config ...

  8. 【深入学习linux】在linux系统下怎么编写c语言程序并运行

    1. 首先安装下 gcc : centos yum -y gcc 2. 编写c程序保存hello.c: #include <stdio.h> #include <stdlib.h&g ...

  9. epool与select有什么区别

    select在一个进程中打开的最大fd是有限制的,由FD_SETSIZE设置,默认值是2048.不过 epoll则没有这个限制,它所支持的fd上限是最大可以打开文件的数目,这个数字一般远大于2048, ...

  10. 解析生效测试方法 执行命令 ping 域名 得不到 IP 主要有如下几个原因:

    https://help.aliyun.com/knowledge_detail/39834.html dig https://cloud.tencent.com/document/product/3 ...