当前位置: 首页 > 编程日记 > 正文

小波矩特征提取matlab代码

这是我上研究生时写的小波矩特征提取代码:

%新归一化方法小波矩特征提取----------------------------------------------------------


F=imread('a1.bmp');
F=im2bw(F);
F=imresize(F,[128 128]);
%求取最上点
for i=1:128
    for j=1:128
        if (F(i,j)==1)
            ytop=i;
            xtop=j;
            break;
        end
    end
    if(F(i,j)==1)
        break;
    end
end
%求取最下点
for i=1:128
    for j=1:128
        if (F(129-i,j)==1)
            ybottom=129-i;
            xbottom=j;
            break;
        end
    end
    if(F(129-i,j)==1)
        break;
    end
end
%求取最左点
for i=1:128
    for j=1:128
        if (F(j,i)==1)
            yleft=j;
            xleft=i;
            break;
        end
    end
    if(F(j,i)==1)
        break;
    end
end
%求取最右点
for i=1:128
    for j=1:128
        if (F(j,129-i)==1)
            yright=j;
            xright=129-i;
            break;
        end
    end
    if(F(j,129-i)==1)
        break;
    end
end
%求取中心点
x0=(xright-xleft)/2+xleft;
y0=(ybottom-ytop)/2+ytop;
x0=round(x0);
y0=round(y0);
%图像平移
F=double(F);
[M,N]=size(F);
F1=zeros(M,N);
M0=M/2;
N0=N/2;
for i=1:M
  for j=1:N
        if F(i,j)==1
           F1(i+M0-y0,j+N0-x0)=1;
        end
    end
end
%figure,imshow(F1);
%图像缩放
max=0;
for i=1:128
    for j=1:128
        if(F(i,j)==1)
            d=sqrt((i-y0)^2+(j-x0)^2);
            if(max<d)
                max=d;
            end
        end
    end
end
%max=round(max);
a=200.0/(max*2);
F2=imresize(F1,a);
%figure,imshow(F2);
%将所有图像均复制到500*500的图像的大小
[M,N]=size(F2);
m0=M/2;
m0=round(m0);
n0=N/2;
n0=round(n0);
f3=zeros(500,500);
y1=round((500-M)/2);
x1=round((500-N)/2);
for i=1:M
    for j=1:N
        if(F2(i,j)==1)
            f3(y1+i,x1+j)=1;
        end
    end
end
%figure,imshow(f3);
%图像从笛卡儿坐标转换为极坐标------------------------------------------------------------
%角度间隔为2*pi/(128*128),128个像素长设为图像的单位圆半径
%f1矩阵里面放着对应极半径和角度的值
f1=zeros(128,16384);
%直角坐标与极坐标建立起一一对应的关系          
for i=1:128
    for j=1:16384
        a=j*2*pi/16384.0;
        r=i;
        y=round(r*sin(a));
        x=round(r*cos(a));
       if (f3(250+x,250+y)==1)
            f1(i,j)=1;
        end
    end
end
F3=zeros(512,512);
%将极坐标转换后的图像显示出来
for i=1:128
    for j=1:16384
        if  f1(i,j)==1
            a=j*2*pi/16384.0;
            x=round(i*cos(a));
            y=round(i*sin(a));
            F3(256+x,256+y)=1;
        end
    end
end
F3(256,256)=1;
%figure,imshow(F3);
%小波矩特征提取-------------------------------------------------------------------
%进行角度积分得到Sq(r)------------------
N=16384;
Sq=zeros(128,4);
for r=1:128
    for q=1:4
        for m=1:N         
             Sq(r,q)=(f1(r,m)*exp(-j*2.0*pi*(m-1)*(q-1)/N))+Sq(r,q);
        end
       Sq(r,q)=1.0/N*Sq(r,q);
    end
end
%小波矩特征提取-------------------------
x=3;
a=0.697066;
f0=0.409177;
w=sqrt(0.561145);
F1=zeros(3,9,4);
 tt=4*a^(x+1)/sqrt(2*pi*(x+1))*w;
for q=1:4
    for m=1:3
        rr=2^m+1;
        for n=1:rr
            for r=1:128
               %pp=2*(2^(m-1)*(r-1)/128.0-(n-1))-1;
               pp=2*(2^(m-1)*r/128.0-(n-1))-1;
               cc=cos(2*pi*f0*pp)*exp(-1.0*pp^2/(2*(w^2)*(x+1)));
               fan=2^((m-1)/2)*tt*cc;
               %Fmnq(m,n,q)=abs(Sq(r,q)*fan*(r-1)/128)+Fmnq(m,n,q);
               F1(m,n,q)=abs(Sq(r,q)*fan*r)+F1(m,n,q);
            end
        end
    end
end

相关文章:

hadoop生态搭建(3节点)-06.hbase配置

# http://archive.apache.org/dist/hbase/1.2.4/ # 安装 hbase tar -zxvf ~/hbase-1.2.4-bin.tar.gz -C /usr/local rm –r ~/hbase-1.2.4-bin.tar.gz # 配置环境变量# node1 node2 node3 vi /etc/profile# 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下添…

异类框架BigDL,TensorFlow的潜在杀器!

作者 | Nandita Dwivedi译者 | 风车云马责编 | Jane出品 | AI 科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;【导读】你能利用现有的 Spark 集群构建深度学习模型吗&#xff1f;如何分析存储在 HDFS、Hive 和 HBase 中 tb 级的数据吗&#xff1f;企业想用深度学习…

对IsUnderPostmaster变量初步学习

开始 在postmaster.c 中的 BackendStartup 中&#xff0c;有如下的代码&#xff1a; 其中定义了 IsUnderPostmastertrue。 而bgwriter 作为 postmaster 的子进程&#xff0c;它的 IsUnderPostmaster 也是为真。 * BackendStartup -- start backend process** returns: STATUS_…

C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()

转自&#xff1a;http://hi.baidu.com/andywangcn/blog/item/10ba730f48160eeb37d122e9.html 配置文件中经常用到ini文件&#xff0c;在VC中其函数分别为&#xff1a; #include <Windows.h> //wince,WMobile.ppc不支持这几个函数 写入.ini文件&#xff1a;bool WritePriv…

地图下载2之天超图瓦片格式

接上一篇《地图下载1之天地图瓦片解析》&#xff0c;我们已经知道了天地图的瓦片格式&#xff0c;现在来分析一下超图中瓦片的存储结构。 其实&#xff0c;在GIS领域&#xff0c;只有像ESRI这样强大公司的SHP文件等能通用外&#xff0c;很多数据、格式等都不通用&#xff0c;都…

server 2003登录界面黑屏的解决办法

1、备份注册表&#xff08;为了安全起见&#xff09;具体办法&#xff1a;开始-> 运行窗口输入“regedit.exe”->回车->找到注册表->文件->导出->完成&#xff1b; 2、复制下面的文件内容到记事本然后另存为格式为.reg注册表扩展名导入注册表&#xff1b; Wi…

“学了半年后,我要揭开Python 3宗罪!”

有人曾说&#xff0c;未来只有2种人&#xff0c;会Python的人和....不懂Python的小学生&#xff0c;虽有夸张&#xff0c;这也意味着Python越来越重要了&#xff0c;究竟这门语言厉害在哪里&#xff1f;以下为你总结了Python3宗“罪”&#xff01;Python凭啥这么优秀&#xff1…

连表/子查询/计算的sql

看不懂的sql语句 1.select om.*,money,cus.c_type,cus.c_weixin_name,isnull(cus.c_discount,0) c_discount,isnull(om.o_money-om.o_money*cus.c_discount,0) money1,isnull(money*(i_year_pointi_month_potinti_piece_point),0) money2,isnull((om.o_money-om.o_money*cus.c_…

vc6静态库的生成和调用

1、静态库的生成&#xff1a; 在vc6.0中CtrlN选择Projects下的Win32 Static Library&#xff0c;Project name:SumLib,点击OK&#xff0c;下一页中的两项可选可不选&#xff0c;点击Finish完成。 在此工程中新建lib.h和lib.cpp两个文件&#xff0c;源码如下&#xff1a; //lib.…

实例变量的访问及数据封装

你已经看到处理分数的方法如何通过名称直接访问两个实例变量numerator和denominator。事实上&#xff0c;实例方法总是可以直接访问它的实例变量的。然而&#xff0c;类方法则不能&#xff0c;因为它只处理本身&#xff0c;并不处理任何类实例&#xff08;仔细想想&#xff09;…

清华成立视觉智能研究中心,邓志东任中心主任

整理 | 阿司匹林出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;6月21日&#xff0c;清华大学人工智能研究院视觉智能研究中心正式成立&#xff0c;清华大学副校长、清华大学人工智能研究院管委会主任尤政院士&#xff0c;清华大学人工智能研究院院长张钹院士出席成…

Java并发编程(一)Thread详解

一、概述 在开始学习Thread之前&#xff0c;我们先来了解一下 线程和进程之间的关系&#xff1a; 线程(Thread)是进程的一个实体&#xff0c;是CPU调度和分派的基本单位。 线程不能够独立执行&#xff0c;必须依存在应用程序中&#xff0c;由应用程序提供多个线程执行控制。 线…

MFC如何打开文件路径

转自&#xff1a;http://linyangmumu.blog.163.com/blog/static/6903134920101024419380/ 1.void OpenFile&#xff08;&#xff09; { CString m_FileDir; BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner m_hWnd; bi.ulFlags BIF_RETURNONL…

HDOJ_ACM_数塔

Problem Description在讲述DP算法的时候&#xff0c;一个经典的例子就是数塔问题&#xff0c;它是这样描述的&#xff1a;有如下所示的数塔&#xff0c;要求从顶层走到底层&#xff0c;若每一步只能走到相邻的结点&#xff0c;则经过的结点的数字之和最大是多少&#xff1f;已经…

会数据分析的人别再低调了,我怕你会因此错失100万奖金

大家好我是一般周一不冒头一冒头就不一般的柚柚今天我给大家带来了一个好消息那就是“易观方舟Argo杯数据创客大赛”开始接受报名了&#xff01;请不要怀疑就是那个国内领先的大数据公司——『易观』联合20家创新企业筹备了整整两个月的大赛正规、专业、含金量极高&#xff01;…

CxImage类库的简介

转自&#xff1a;http://www.sudu.cn/info/html/edu/20080403/259688.html CxImage类库是个优秀的图像操作类库。他能快捷地存取、显示、转换各种图像。有的读者可能说&#xff0c;有那么多优秀的图像库&#xff0c;如OpenIL,FreeImage,PaintLib等等&#xff0c;他们可谓是功能…

MySQL 5.5 服务器变量详解(二)

innodb_adaptive_flushing{ON|OFF} 设定是否允许MySQL服务器根据工作负载动态调整刷写InnoDB buffer pool中的脏页的速率。动态调整刷写速率的目的在于避免出现IO活动尖峰。默认值为ON。作用范围为全局级别&#xff0c;可用于选项文件&#xff0c;属动态变量。innodb_adaptive_…

一文掌握异常检测的实用方法 | 技术实践

作者 | Vegard Flovik译者 | Tianyu责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】今天这篇文章会向大家介绍几个有关机器学习和统计分析的技术和应用&#xff0c;并展示如何使用这些方法解决一些具体的异常检测和状态监控实例。相信对一些开发…

票据自动处理系统著名研究团队

国际上对票据自动处理系统的研究始于上世纪80年代&#xff0c;俄罗斯、美国、加拿大、日本、巴西等国在这个领域的研究工作开展得比较深入&#xff0c;著名的研究团体如加拿大Concordia大学的CENPARMI中心、MIT的PROFIT实验室、俄罗斯ABBYY软件公司、Mitek Systems公司CheckQue…

iOS开发之AVKit框架使用

2019独角兽企业重金招聘Python工程师标准>>> iOS开发之AVKit框架使用 一、引言 在iOS开发框架中&#xff0c;AVKit是一个非常上层&#xff0c;偏应用的框架&#xff0c;它是基于AVFoundation的一层视图层封装。其中相关文件和类都十分简单&#xff0c;本篇博客主要整…

DirectX10 学习笔记2:在多文档框架中初始化DirectX 10

显示功能是在视图类中完成的&#xff0c;所以DX10的初始化及绘制工作都是视图类中完成。 首先建立一个多文档工程&#xff0c;工程名为02_01&#xff0c;在视图类头文件中加载相关的库&#xff0c;并包含头文件&#xff1a; 在视图类的头文件中添加DX10相关的成员&#xff1a; …

碾压Bert?“屠榜”的XLnet对NLP任务意味着什么

作者张俊林&#xff0c;中国中文信息学会理事&#xff0c;中科院软件所博士。目前担任新浪微博机器学习团队 AI Lab 负责人。在此之前&#xff0c;张俊林曾经在阿里巴巴任资深技术专家并负责新技术团队&#xff0c;以及在百度和用友担任技术经理及技术总监等职务。他是技术书籍…

ORACLE中通过DBMS_CRYPTO包对表敏感字段进行加密

http://doc.primeton.com/pages/viewpage.action?pageId4917998

02 使用百度地图获得当前位置的经纬度

O 需求 通过百度地图&#xff0c;获取用户当前位置的经纬度 一 准备 确保你已按照上篇《01 如何将百度地图加入IOS应用程序&#xff1f;》完成了相关功能。本篇将在上一篇的基础上进行修改。 二 编码 (New标示本次新添加的代码&#xff1b;Delete表示本次需要删除的代码&#x…

中文NLP的分词真有必要吗?李纪为团队四项任务评测一探究竟 | ACL 2019

作者| Yuxian Meng、Xiaoya Li、Xiaofei Sun、Qinghong Han、Arianna Yuan、 Jiwei Li译者 | Rachel责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】通常&#xff0c;中文文本处理的第一步称为分词&#xff0c;这好像已经成为一种“共识”&#…

Netty 粘包 拆包 编码 解码 序列化 介绍

目录&#xff1a; 粘包 & 拆包及解决方案 ByteToMessageDecoder基于长度编解码器基于分割符的编解码器google 的 Protobuf 序列化介绍其他的前言 Netty 作为一个网络框架&#xff0c;对 TCP 连接中的问题都做了全面的考虑&#xff0c;比如粘包拆包导致的半包问题&#xff0…

matlab 全局变量

转自&#xff1a;http://matlab.net.cn/matlabjichu/2010/201005/265.html 如果你要多于一个函数共用一个简单的变量&#xff0c;简单的处理方法就是把这个变量在所有函数中定义为global全局变量。在命令行做同样的事情&#xff0c;如果你要工作空间访问上述变量。这个全局变量…

java 解决Html table的rowspan问题(osc处女作)

2019独角兽企业重金招聘Python工程师标准>>> 假如有如下html代码需要解析 <table border"1"><tr><td rowspan"3">1</td><td>1</td><td>1</td><td>1</td></tr><tr>&l…

基于C++的OpenCV常用函数

C版本的好处&#xff1a; 1、在于可以尽量避免使用指针这种危险的东西&#xff1b; 2、不用费心去release资源了&#xff0c;因为在其destructor里面&#xff0c;系统会自动帮你搞定。 3、在某些情况下会比C版本运行速度快。 在文件中包含 using namespace cv; 1. i…

基于GAN的图像水印去除器,效果堪比PS高手

作者 | 李翔转载自视说AI&#xff08;ID:techtalkai&#xff09;简介&#xff1a;李翔&#xff0c;国内某互联网大厂AI民工&#xff0c;前携程酒店图像技术负责人&#xff0c;计算机视觉和深度学习重度爱好者&#xff0c;在ICCV和CVPR等会议上发表论文十余篇。写在前面当前互联…