当前位置:首页 » 操作系统 » 细化算法matlab

细化算法matlab

发布时间: 2023-02-28 07:27:18

㈠ 基于MATLAB的毕业设计有哪些

基于MATLAB的毕业设计有:

1、基于MATLAB的视图技术分析。

2、二值图像细化算法研究与实现。

3、基于MATLAB下的信号分析与处理。

4、基于matlab的伪彩色处理与研究。

5、matlab进行小波分析。

matlab将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。

(1)细化算法matlab扩展阅读

MATLAB特点

1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2、具有完备的图形处理功能,实现计算结果和编程的可视化;

3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

㈡ 什么样的图像可以进行细化

二值的当然不行。

快速zhang并行算法,很好的一种常用方法
具体细化方法:
满足下列四个条件的点可以删除
p3 p2 p9
p4 p1 p8
p5 p6 p7

细化删除条件为: (1)、2 < Nz(p1) <= 6 Nz为八邻域中黑点的数目
(2)、Zo(p1)=1,指中心为黑点
(3)、p2*p4*p8=0 or Zo(p1)!=1 避免黑线被打断
(4)、p2*p4*p6=0 or Zo(p4)!=1

细化算法的分类:
依据是否使用迭代运算可以分为两类:第一类是非迭代算法,一次即产生骨架,如基于距离变换的方法。游程长度编码细化等。第二类是迭代算法,即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。迭代方法依据其检查像素的方法又可以再分成串行算法和并行算法,在串行算法中,是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况,而在并行算法中,像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代的结果。在经典细化算法发展的同时,起源于图像集合运算的形态学细化算法也得到了快速的发展。
Hilditch、Pavlidis、Rosenfeld细化算法:这类算法则是在程序中直接运算,根据运算结果来判定是否可以删除点的算法,差别在于不同算法的判定条件不同。
其中Hilditch算法使用于二值图像,比较普通,是一般的算法; Pavlidis算法通过并行和串行混合处理来实现,用位运算进行特定模式的匹配,所得的骨架是8连接的,使用于0-1二值图像 ;Rosenfeld算法是一种并行细化算法,所得的骨架形态是8-连接的,使用于0-1二值图像 。 后两种算法的效果要更好一些,但是处理某些图像时效果一般,第一种算法使用性强些。
索引表细化算法:经过预处理后得到待细化的图像是0、1二值图像。像素值为1的是需要细化的部分,像素值为0的是背景区域。基于索引表的算法就是依据一定的判断依据,所做出的一张表,然后根据魔鬼要细化的点的八个邻域的情况查询,若表中元素是1,若表中元素是1,则删除该点(改为背景),若是0则保留。因为一个像素的8个邻域共有256中可能情况,因此,索引表的大小一般为256。

㈢ MATLAB的图像细化算法求助。applylutc.c

%%%%%%%%%%%%%%%模糊聚类%%%%%%%%%%%%%%%%%%%%%%%
clear;
load F:\从0开始\数据\data.txt;
INPUTDATA=data;
%--------原始数据标准化-------%
disp('请选择原始数据标准化方式: ');
disp('<1-总和标准化|2-标准差标准化|3-极大值标准化|4-极差标准化>');
wayforstand=input('请输入: ');
switch wayforstand
case 1,
DATAFORCLUS=standard_use_sum(INPUTDATA);
case 2,
DATAFORCLUS=standard_use_std(INPUTDATA);
case 3,
DATAFORCLUS=standard_use_max(INPUTDATA);
case 4,
DATAFORCLUS=standard_use_jc(INPUTDATA);
otherwise
error('您的输入不符合要求->执行结束!!!');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基于模糊等价关系的模糊聚类%%%%%%%%%%%%%%%%%%%%%%
%----------构造相似关系-----------%
numrows=size(DATAFORCLUS,1);
numcols=size(DATAFORCLUS,2);
disp('请选择对象之间相似性统计量的方式: ');
disp('<1-相关系数法|2-夹角余弦法|3-指数相似系数法|4-绝对值指数法|5-算术平均最小法|6-最大最小值法|7-绝对值差数法|8-数量积法>');
wayforr_ij=input('请输入: ');
switch wayforr_ij
case 1, %-----------------------------------相关系数法
for i=1:numrows,
for j=1:numrows,
meani=mean(DATAFORCLUS(i,:));meanj=mean(DATAFORCLUS(j,:));
simiR(i,j)=sum((DATAFORCLUS(i,:)-meani).*(DATAFORCLUS(j,:)-meanj))/...
(sqrt(sum((DATAFORCLUS(i,:)-meani).^2))*sqrt(sum((DATAFORCLUS(j,:)-meanj).^2)));
end
end
case 2, %-----------------------------------夹角余弦法
for i=1:numrows,
for j=1:numrows,
simiR(i,j)=sum(DATAFORCLUS(i,:).*DATAFORCLUS(j,:))/...
(sqrt(sum(DATAFORCLUS(i,:).*DATAFORCLUS(i,:)))*sqrt(sum(DATAFORCLUS(j,:).*DATAFORCLUS(j,:))));
end
end
case 3, %-----------------------------------指数相似系数法

case 4, %-----------------------------------绝对值指数法

case 5, %-----------------------------------算术平均最小法

case 6, %-----------------------------------最大最小值法

case 7, %-----------------------------------绝对值差数法

case 8, %-----------------------------------数量积法

otherwise
error('您的输入不符合要求->执行结束!!!');
end
%-------改造成等价关系----------%
sign=0;
numselfmul=1;
simiRk=eye(numrows);
equi_tem=simiR;
while sign==0,
for i=1:numrows,
for j=1:numrows,
for c=1:numrows,
rij_temp(c)=min([equi_tem(i,c) equi_tem(c,j)]);
end
simiRk(i,j)=max(rij_temp);
end
end
%--------------%
if sum(sum(simiRk-equi_tem,1))~=0,
numselfmul=numselfmul+1;
equi_tem=simiRk;
else
sign=1;
break
end
%--------------%
end
if sign==1,
disp('从相似矩阵到等价矩阵改造成功!!!');
else
disp('从相似矩阵到等价矩阵改造失败!!!');
end
equiR=simiRk;
numclass=input('请输入聚类数: ');

%---------在不同的截集水平进行聚类--------------%
clasc=0;
comp_vec(1,1:numrows)=0;
index=0;
clasc=0;
tip=0;
alpha=0;
temnumeachclass=0;
while (tip==0),
%alpha=input('请输入进行分类的截集水平λ: ');
%alpha=0.5; %调试
if (alpha<0 || alpha>1),
error('您输入的截集水平λ不符合分类要求->执行结束!!!');
end
comp_arr=ones(numrows)*alpha;
result_arr=(equiR>=comp_arr); %--------------------result_arr判断矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%捡菜算法
for i=1:numrows,
if sum(comp_vec(1,:)==result_arr(i,:))<numrows, %-----------说明没有归类
temnumeachclass=0;
%numeachclass(clasc)=index-temnumeachclass;
temsave=result_arr(i,:);
for j=1:numrows,
if sum(result_arr(j,:)==temsave)==numrows,
index=index+1;
class(index)=j;
result_arr(j,:)=0; %--------------------说明已经被归类
temnumeachclass=temnumeachclass+1;
end
end
clasc=clasc+1;
nec(clasc)=temnumeachclass;
else
continue;
end
end

if clasc>=numclass,
tip=1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%当模糊分类的数目小于等于所给出的类数时退出循环体
disp('成功!!!');
else
clear class;
clear numeachclass;
clear nec;
clasc=0;
index=0;
temnumeachclass=0;
alpha=alpha+0.01;
end
end
%----取聚类结果----%
num=0;
n=0;
for i=1:clasc,
for j=1:nec(i),
num=num+1;
n=n+1;
CLUS(n,:)=INPUTDATA(class(num),:);
end
n=n+1;
CLUS(n,:)=inf;
end
%format single(CLUS)
lenexport=size(CLUS,1);
for i=1:lenexport,
RESULT(i,:)=sprintf('%15.2f',CLUS(i,:));
end
RESULT

㈣ Matlab中的细化函数是怎样的

前几天刚做的指纹识别算法,细化部分,以指纹识别为例:getminu.m
%%%%%%%%%%%%%%%%%%%%%%%%%提取指纹细节点算法,P为细化后图像
function minu=getminu(P,smooth)
[height,width]=size(P);
minu=P;
cn_coding=zeros(height,width);%连接数编码初始化
for i=2:height-1
for j=2:width-1
if P(i,j)==1
cn_coding(i,j)=0.5*(abs(P(i,j+1)-P(i-1,j+1))+abs(P(i-1,j+1)-P(i-1,j))+abs(P(i-1,j)-P(i-1,j-1))+abs(P(i-1,j-1)-P(i,j-1))+abs(P(i,j-1)-P(i+1,j-1))+abs(P(i+1,j-1)-P(i+1,j))+abs(P(i+1,j)-P(i+1,j+1))+abs(P(i+1,j+1)-P(i,j+1)));
if cn_coding(i,j)==1%端点
minu(i-1,j)=1;
minu(i+1,j)=1;
minu(i,j-1)=1;
minu(i,j+1)=1;
minu(i-1,j-1)=1;
minu(i-1,j+1)=1;
minu(i+1,j-1)=1;
minu(i+1,j+1)=1;
elseif cn_coding(i,j)==3%交叉点
minu(i-1,j-1)=1;
minu(i-1,j+1)=1;
minu(i+1,j-1)=1;
minu(i+1,j+1)=1;
end

end
end
end
figure,imshow(1-minu);
%%%%消除伪细节点%%%%%%%%%%%%%

detail=P;%%初始化
mark=smooth;
for i=1:height
for j=1:width
if smooth(i,j)==8
mark(i,j)=0;
else mark(i,j)=1;
end
end
end
%figure,imshow(mark)%背景与前景标志
for i=2:height-1
for j=2:width-1
%%%%注意这块的逻辑关系,括号的作用很关键的
if (cn_coding(i,j)==1||cn_coding(i,j)==3)&&mark(i,j)==1&&mark(i,j+5)*mark(i-5,j)*mark(i,j-5)*mark(i+5,j)==0
cn_coding(i,j)=0;%置为伪细节点
end
if cn_coding(i,j)==1%端点
detail(i-1,j)=1;
detail(i+1,j)=1;
detail(i,j-1)=1;
detail(i,j+1)=1;
detail(i-1,j-1)=1;
detail(i-1,j+1)=1;
detail(i+1,j-1)=1;
detail(i+1,j+1)=1;
elseif cn_coding(i,j)==3%交叉点
detail(i-1,j-1)=1;
detail(i-1,j+1)=1;
detail(i+1,j-1)=1;
detail(i+1,j+1)=1;
end
end
end
figure,imshow(1-detail);

㈤ 求数字信号处理有关车牌识别的MATLAB代码

虽然我未必能帮助你解决这个问题,但是还是想说几句来帮助你。
(1)车牌照识别是属于图像处理里面的内容,MATLAB里面有图像处理工具箱可以帮助你,但是不能帮你彻底解决问题。
(2)能否无错识别肯定和图片的清晰度有关,没有任何一个软件或者代码可以保证完全识别出来,当然,在仅仅考虑图片清晰的前提下(即肉眼可以很轻松识别),还是可以保证比较高的识别率。
(3)这个问题涉及到图片的方位判断,边界提取,字符匹配 等算法,本质上不是一个代码问题,而是一个算法问题。也不局限于MATLAB来解决,GIS,C++,等软件都可以用来做。但是算法才是关键。
(4)给你一些参考文献,希望能对你有启发。
[1] 刘峡壁,贾云得. 一种字符图像线段提取及细化算法[J]. 中国图象图形学报. 2005(01): 48-53.
[2] 李文举,梁德群,崔连延,等. 一种新的面向字符分割的车牌图像预处理方法[J]. 计算机应用研究. 2004(07): 258-260.
[3] 曹建海,路长厚. 基于小波变换和DCT的字符图像特征抽取新方法[J]. 光电子•激光. 2004(04): 477-482.
[4] 付仲良,陈江平,黄书强,等. 货车图像车牌区快速定位及字符切割算法[J]. 计算机工程与设计. 2003(01): 77-79.
[5] 王建平,盛军,朱程辉. 基于小波分析的视频图像字符特征提取方法研究[J]. 微电子学与计算机. 2002(05): 51-53.
[6] 吴大勇,魏平,侯朝桢,等. 一种车牌图像中的字符快速分割与识别方法[J]. 计算机工程与应用. 2002(03): 232-233.
[7] 陈锻生,谢志鹏,刘政凯. 复杂背景下彩色图像车牌提取与字符分割技术[J]. 小型微型计算机系统. 2002(09): 1144-1148.
[8] 顾晖,程晨,梁惺彦. 利用模糊边界提取算法实现医学图像边界提取[J]. 现代计算机(专业版). 2008(01): 38-40.
[9] 罗诗途,王艳玲,罗飞路,等. 基于分形几何边界提取的图像跟踪方法[J]. 应用光学. 2006(01): 19-22.
[10] 王少霞,颜钢峰. 基于张弛法的图像边界提取算法[J]. 江南大学学报. 2005(05): 53-55.
[11] 王艳玲,张玘,罗诗途. 基于分形几何边界提取的图像跟踪方法[J]. 光电子技术与信息. 2005(06): 49-52.
[12] 付青青,冯桂. 噪声图像中边界提取方法的研究[J]. 电脑与信息技术. 2003(01): 22-25.
[13] 王晖,张基宏. 多尺度图像边界提取的小波算法与最优准则[J]. 深圳大学学报. 1997(Z1): 21-25.

㈥ MATLAB--数字图像处理 频域图像分析

频域图像分析

1.熟悉MATLAB软件的使用。
2.掌握频域图像分析的原理及数学运算。

1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来比较这四种滤波方法对两种不同噪声的去噪能力。
2.编写一个程序,要求实现下列算法:首先将阁像分割为8x8的子图像,对每个予图像进行FFT.对每个了图像中的64个系数。按照每个系数的方差来排序后,舍去小的变换系数,只保留16个系数,实现4: I的图像压缩
3.给定一幅行和列都为2的整数次幕图像,用Haar小波基函数对其进行二维小波变换,试着将最低尺度近似分量置零再反变换,结果是什么?如果把垂直方向的细节分量置零,反变换后结果又是什么呢?试解释一下原因。
4.基于小波变换对图像进行不同压缩比的压缩。在同压缩比情况下,对于基于小波变换和基于傅里叶变换的压缩结果,比较=二者保留原图像能里百分比情况。

Win10 64位电脑
MATLAB R2017a

1.傅里叶变换
从纯粹的数学意义上看,傅里叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅里叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅里叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数。
傅里叶逆变换是将图像的频率分布函数变换为灰度分布函数傅里叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,通常用一个二维矩阵表示空间上各点,记为z=f(x,y)。又因空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就必须由梯度来表示,这样我们才能通过观察图像得知物体在三维空间中的对应关系。
2.小波变换
小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。
小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。
3.PSNR算法
peak的中文意思是顶点。而ratio的意思是比率或比列的。整个意思就是到达噪音比率的顶点信号,psnr一般是用于最大值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,输出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它是原图像与被处理图像之间的均方误差相对于(2 n-1) 2的对数值(信号最大值的平方,n是每个采样值的比特数),它的单位是dB。

SNRP算法

haar基函数进行小波变换

七、实验结果与分析

图 1原图

1.加入周期噪声、高斯噪声

2.对添加了高斯噪声和周期噪声的图像进行高斯滤波

PSNR值
1.对高斯噪声进行高斯滤波后 23.0287
2.对周期噪声进行高斯滤波后 23.4837

2.中值滤波

PSNR值:
1.对高斯噪声进行中值滤波 23.9931
2.对周期噪声进行中值滤波 24.3134

3.傅里叶变换滤波

PSNR值:
1.对添加了高斯噪声的图像进行傅里叶变换滤波 20.4922
2.对添加了周期噪声的图像进行傅里叶变换滤波 18.9736

4.小波变换滤波

PSNR值:
1.对添加了高斯噪声的图像进行小波变换滤波 23.4712
2.对添加了周期噪声的图像进行小波变换滤波 24.4525

分析:
对于高斯噪声,高斯滤波和傅里叶变换滤波声的除噪效果较好,中值滤波效果较差,小波变换滤波的处理效果也比较好
对于周期噪声,中值滤波和高斯滤波效果不是很好,傅里叶变换变换滤波对噪声的去处效果比较好,对于原图像损坏不大,小波变换对原图的损坏较大,但是图片可以看出噪声也去除的比较好。

5.图像压缩(4:1压缩) 原图-左 压缩后-右

分析:
图像压缩算法就是先将一副图像分成很多小块,然后分别对这些小块进行变换,这里采用的是傅里叶变换,然后过滤掉冗余的像素点,然后再利用反变换得到压缩后的图像即可。
小波变换
1.定义
小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节带噪声信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换回复检测信号。
2.优点
小波变换在去除噪声时可提取并保存对视觉起主要作用的边缘信息,而传统的基于傅里叶变换去除噪声的方法在去除噪声和边沿保持上存在着矛盾,因为傅里叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。由此可知,与傅里叶变换去除噪声的方法相比较,小波变换法去除噪声具有明显的性能优势。
Haar基函数进行小波变换
图 2原图

图 3 haar变换

图 4 haar反变换后

图 5 最低分量近似置零

图 6 垂直分量置零

小波变换进行图像压缩与傅里叶变换压缩对比

1.压缩比 1:2(左-小波压缩 右-傅里叶压缩)

2.压缩比 1:4(左-小波压缩 右-傅里叶压缩)

通过这次实验,学到了很多。特别是在傅里叶变换和小波变换等方面,开始的时候连傅里叶变换的基础基础也不懂,后来在csdn上看了一篇讲解傅里叶变换的文章,豁然开朗,傅里叶变换居然可以将一个时域信号转化到频域,而且自己还对与i有了更加深刻的理解。虽然傅里叶变换可以把信号从时域转换到频域,但是频域与时域的对应关系却无法一一对应,所以诞生了小波变换。小波变换的特别之处就是可以把一个时域上的信息转换为时域-频域一一对应,这对应特殊信号的提取是有很好的效果,在一定程度上比傅里叶变换更厉害。但是在傅里叶、小波等基础概念知识方面,自己还是涉猎的比较少,原理的论证公式太复杂了。

热点内容
国家开放大学默认密码是多少 发布:2025-08-14 17:46:04 浏览:459
sql拼接sql 发布:2025-08-14 17:46:01 浏览:145
c语言实现的万年历 发布:2025-08-14 17:37:58 浏览:947
我的世界网易服务器老是崩溃怎么办 发布:2025-08-14 17:32:50 浏览:149
小米路由存储分享 发布:2025-08-14 17:32:48 浏览:244
a3服务器ip地址连接不了 发布:2025-08-14 17:19:58 浏览:809
mac查看系统文件夹 发布:2025-08-14 17:17:56 浏览:341
代码段加密 发布:2025-08-14 17:06:30 浏览:959
我的世界嗨皮服务器怎么关服了 发布:2025-08-14 16:48:55 浏览:420
怎么可以修改手机配置 发布:2025-08-14 16:44:09 浏览:311