计算图像的矩,通过矩来计算图像的不变矩特征。
采用了两种方式计算不变矩。
第一种,直接采用循环实现:
% 计算图像平面上区域的矩
% 参考:《图像工程(中册)图像分析》P240
% f 输入二维图像(函数)
% (p,q) 需要计算的阶数
% 返回:
% 函数 f(x,y) 的 p+q 阶矩
function [moment]=CalculateMoment(f,p,q)
[xSize,ySize]=size(f); % 计算横纵范围
f=double(f); % 类型抓换
moment=0.0;
tic
testtimes=10000; % 测试次数
for mm=1:testtimes
for x=1:xSize
for y=1:ySize
moment=moment+(x^p)*(y^q)*f(x,y); % 计算代码
end
end
end
moment=moment/testtimes
toc
输出为:
moment = 1.2885e+003
Elapsed time is 12.563000 seconds.
第二种方式,采用矩阵运算实现:
testtimes=10000;
for mm=1:testtimes
xMatrix=zeros(xSize,ySize);
yMatrix=zeros(xSize,ySize);
for i=1:xSize
xMatrix(i,:)=i;
end
for j=1:ySize
yMatrix(:,j)=j;
end
moment=sum(sum((xMatrix.^p).*(yMatrix.^q).*f));% 计算矩
end
toc
输出为:Elapsed time is 5.907000 seconds.
花费时间不到前面的一半。
倘若把内存分配与初始化工作放到循环测试的外边,即
xMatrix=zeros(xSize,ySize);
yMatrix=zeros(xSize,ySize);
for i=1:xSize
xMatrix(i,:)=i;
end
for j=1:ySize
yMatrix(:,j)=j;
end
testtimes=10000;
for mm=1:testtimes
moment=sum(sum((xMatrix.^p).*(yMatrix.^q).*f));% 计算矩
end
toc
输出为:Elapsed time is 4.782000 seconds.
运算时间可以进一步减少。
分享到:
相关推荐
本文探讨了如何使用Matlab软件实现矩量法(Method of Moments, MoM)来计算框形天线的输入阻抗,这是一种在工程实践中极为重要的电磁学计算方法。框形天线因其独特的结构和性能,在超高频波段通信、电视和接力通信等...
在MATLAB中实现不变矩算法,可以方便地编写和测试各种图像处理函数。以下将详细讨论不变矩的定义、计算方法以及如何在MATLAB中实现这一过程。 1. 不变矩定义: 不变矩是由图像像素灰度分布构造的一组数值,其中最...
在Matlab中,我们可以利用编程来计算图像的空间矩。这个压缩包提供的代码就是基于这样的需求,它实现了对BMP格式图像的空间矩求解算法。 首先,让我们了解什么是空间矩。在二维图像中,空间矩是基于像素强度分布的...
4. 不变矩计算:掌握如何在MATLAB中计算图像的矩和不变矩,包括使用`moments`函数等。 5. 图像旋转不变性:验证提取的不变矩在图像旋转后依然保持不变,理解这种不变性的意义。 6. 应用场景:探讨不变矩在实际问题中...
6. **执行`Hu_moment.m`脚本**:提供的MATLAB脚本`Hu_moment.m`很可能是实现以上步骤的代码,它读取图像,计算矩,并可能显示结果。通过运行此脚本,用户可以观察到“Lena.bmp”图像的Hu矩值。 Hu矩的应用不仅限于...
本资源包含MATLAB和C++两种编程语言实现的Zernike矩计算代码,对于学习和理解Zernike矩的计算过程非常有帮助。 首先,MATLAB是一种广泛用于数值计算和数据分析的高级编程环境,它的语法简洁且易于理解。在MATLAB中...
综上所述,基于MATLAB和矩量法的电磁仿真开发,为电磁场理论和微波技术在科研生产各领域的应用提供了高效的计算工具和方法。通过这种方式,可以更快地对电磁场问题进行分析和解决,对于提高电子设备设计和电磁环境...
在MATLAB中实现Hu矩计算,可以使用内置函数`im moments`来计算图像的中心矩,然后通过特定的线性变换得到Hu矩。"Hu_MV_Nicolas.m"脚本就是这样一个实现,它包含了完整的计算流程,并且经过了测试,可以成功运行,这...
在Matlab中实现这些不变矩,通常需要编写函数来计算图像的像素强度分布,然后利用Matlab的内置函数如`moments()`来计算原矩,接着进行相应的变换得到其他类型的矩。`bubianju.txt`可能包含实现这些功能的Matlab代码...
值得注意的是,矩量法通常需要配合计算机软件进行复杂的数值计算,例如MATLAB等编程工具。本文档提供的代码和注释能够帮助理解矩量法在处理线天线辐射问题时的具体实现过程。 在东南大学的试卷封面信息中,可以了解...
3. 计算矩:利用MATLAB内置的函数或者自定义函数计算图像的矩。 4. 归一化:为了消除尺度的影响,通常会进行中心矩到规范化矩的转换。 5. 比较分析:比较原图和缩放后的图像的不变矩,分析其差异,验证不变矩的特性...
在MATLAB开发中,`polygeomm`是一个用于处理闭合多边形几何特性的工具。这个工具包主要关注计算多边形的关键属性,如面积、质心位置、面积惯性矩以及周长。这些属性在图形处理、物理模拟、工程计算等多个领域都有...
可靠性算法,改进一次二阶矩法的Matlab源代码,结合Rackwitz-Fiessler方法,能够考虑任意分布的随机变量,里面包含部分测试例子,可直接在Matlab软件中调用执行,文件中包含详细的注释。
在本文中,我们将深入探讨如何使用Matlab编程来提取数字的小波矩特征。小波矩是一种统计量,它能够提供信号或图像数据的局部信息,特别适用于非平稳信号的分析。这种特性使得小波矩在图像处理、模式识别、信号处理等...
在Matlab中,可以通过`moments`函数得到图像的中心矩,然后通过一系列线性变换(如齐次坐标、傅里叶变换等)得到 Hu矩。通常,这个过程包括计算一阶到三阶的中心矩,然后通过这些中心矩构建七个独立的Hu矩。 5. **...
3. HU不变矩计算:在MATLAB中,可以使用内置函数`im moments`计算图像的矩,然后通过一系列线性变换得到HU矩。这些矩数值可以作为树叶图像的特征向量,用于区分不同类型的树叶。 4. 数据集准备:一个完整的识别系统...
在"tezhengtiqu1.m"这个脚本中,可以期待看到如何定义小波基、进行小波变换、计算小波矩以及如何处理和使用这些特征的代码。"a11.bmp"这个文件可能是一个样本图像,用于测试或展示小波矩特征提取的效果。 小波矩...
【标题】"pickmt:Matlab代码用于矩张量相位拾取和反演"指出,这个项目是基于MATLAB编程环境的一个工具,专门用于处理地震学中的矩张量数据分析。矩张量方法是地震学中分析地震源机制的重要手段,它通过分析地震波的...
可靠性算法,一次二阶矩法的Matlab源代码,里面包含部分测试例子,可直接在Matlab软件中调用执行,文件中包含详细的注释。