• 大小: 1023KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-20
  • 语言: Matlab
  • 标签: 曲面拟合  MLS2D  

资源简介

代码是基于MATLAB的移动最小二乘法MLS的曲面拟合。代码是从mathworks上下载的MLS2D,经过自己的分析改进,有较大的提速,在i5 3450机上一幅98*144的图片以10等步长采样拟合只需要3s。代码仅供学习参考,我的博客有相关说明:https://blog.csdn.net/liumangmao1314/article/details/89421806

资源截图

代码片段和文件信息

% two-DIMENSIONAL MLS APPROXIMATION
% by Jin Jia
%% 图像等步长采样
clc
clear all


I=imread(‘22result.jpg‘);
[rowcolchn]=size(I);
% I=I(1:col::);
% 设置节点坐标
step=10;%步长
xII=1: step : row;
yII=1: step : col;
[xIyI] = meshgrid(yIIxII);
nnodes = size(xI1)*size(yI2);
% 设置评估点的坐标
[xy] = meshgrid(1: 1 : col1: 1: row);

npoints = size(x1)*size(y2);
scale = 30;
% 确定每个节点的支持半径
dmI = scale *0.5* ones(1 nnodes);
tic
% 评估所有评估点x的MLS形状函数
[PHI DPHIx DPHIy] = MLS2DShape(6 nnodes xIyI npoints xy dmI ‘GAUSS‘ 3.0 ); 
toc
 
% 曲线拟合. y = peaks(xy)
ZII  =I(xIIyII:);    % 节点函数值 
% z  =x.*exp(-x.^2- y.^2);% 确切的解决方案
Zpoints=zeros(1npoints);
xh=zeros(1npoints);
yh=zeros(1npoints);
II=I-I;
for i=1:npoints
% Zpoints(1i)=z(i);
xh(1i)=x(i);
yh(1i)=y(i);
end
Znodes=zeros(1nnodes);
for j=1:1
    ZI=ZII(::j);
    for i=1:nnodes
        Znodes(1i)=ZI(i);
    end                        %将二维数据转换为一维数据
    zh = PHI *Znodes‘;  % 逼近函数
    II(::j)=reshape(zhrowcol);
end
ZI=double(ZI);
plot3( xI yI ZI‘k.‘‘LineWidth‘2);
hold on
surf(xyII(::j));
toc
% imshow(II);
% III=imsubtract(III);
% sum(sum(sum(III)))/(row*col*3)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      61762  2019-04-21 09:57  MLS2D\111.jpg

     文件      62925  2019-04-21 10:31  MLS2D\2222.jpg

     文件       5259  2014-11-18 09:45  MLS2D\22result.jpg

     文件       1266  2019-04-21 10:04  MLS2D\MLS2D.m

     文件       3251  2018-12-23 21:54  MLS2D\MLS2DShape.m

     文件       4207  2018-12-21 16:38  MLS2D\rectangleWeight.m

     文件   13805040  2019-04-21 10:29  MLS2D\untitled.emf

     目录          0  2019-04-21 10:57  MLS2D

----------- ---------  ---------- -----  ----

             13943710                    8


评论

共有 条评论