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

软件: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. 链表 | 递归删除不带头结点链表所有x元素

    王道P37 T1 : 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点. 王道上的答案绝对是错的,我自己想了一个 函数主体 LinkList* del_x(LinkList* prior, ...

  2. About me recently

    About me recently Recently I fell that memory has always been problematic.Maybe I hava bee too tired ...

  3. SIT系统整合测试

    System Integrate Test的缩写,即系统整合测试      系统整合测试就是评估产品在其规格范围内的环境下工作,能否完成产品设计规格所需要的功能及与周边设备.应用软件的兼容性.大致可以 ...

  4. UDF——Fluent与Matlab数据耦合

    本文编译工具:VC++ UDF Studio 该插件可以直接在Visual Studio中一键编译.加载.调试UDF源码,极大提高编写排错效率,且支持C++,MFC,Windows API和第三方库, ...

  5. Guava Cache 缓存实现与源码分析

    目录 一.概述 1.内存缓存 2.核心数据结构 二.具体实现 0.一览众山小 1.CacheBuilder 构建器 2.LocalCache 一.概述 1.内存缓存 可看作一个jdk7的concurr ...

  6. Excel多表头设置二级联动选择

    1.初始准备 2.全选,然后开始 -> 查找和选择 -> 定位条件 3.公式 -> 根据所选内容创建 因为一级联动数据在第一行,所以选首行 4.因为学校信息与联动数据不在同一个she ...

  7. 分析 Kaggle TOP0.1% 如何处理文本数据

    感觉大佬的代码写的就是好,在处理数据的方面,首先定义一个 提取特征的类, class Extractor(object):,然后每一种方法对这个类进行重构,这个类主要结构就是: class Extra ...

  8. SQL存储实现将JSON自动转化成SQL数据列

    CREATE PROCEDURE sp_GetJsonFields ( @Json VARCHAR(MAX) ) AS BEGIN SELECT @Json=REPLACE(@Json,'{','') ...

  9. 【jmeter】使用jmeter进行测试-示例

    介绍 jmeter主要用于负载测试,详细信息可以参见Google. 这里使用一个简单的示例,来介绍jmeter的使用. 涉及的功能点包括: HTTP HEADER配置 HTTP Request配置 J ...

  10. js数组、对象处理

    js arry: var arry = []; js object: var obj = {}; obj定义属性: obj.filename=''; obj.id=''; 把 obj 添加到 arry ...