• 大小: 964KB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2021-07-06
  • 语言: Matlab
  • 标签: MLS2D  

资源简介

代码是基于MATLAB的移动最小二乘法MLS的曲面拟合。代码是从mathworks上下载的MLS2D,经过自己的分析改进,有较大的提速,提速代码资源里有,这是适用于随机点和一堆离散点的曲面拟合。代码仅供学习参考,切勿用于商业用途,我的博客文章有相关说明:https://blog.csdn.net/liumangmao1314/article/details/89421806

资源截图

代码片段和文件信息

% two-DIMENSIONAL MLS APPROXIMATION
% by Jin Jia
%% 图像随机采样MLS
clc
clear all;
close all;

I=imread(‘22result.jpg‘);
[rowcolchn]=size(I);

num=200;%随机采样个数
nnodes=num;
I1=reshape(Irow*col3);
xy=randi([1row*col]1num);
%节点坐标
[xIyI]=ind2sub([row col]xy);
%对应的值
ZII=double(I1(xy:));%更换

% 设置评估点的坐标
[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(3 nnodes yIxI 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:3
    ZI=ZII(:j);
%     for i=1:nnodes
%         Znodes(1i)=ZI(:);
%     end                        %将二维数据转换为一维数据
    zh = PHI *ZI;  % 逼近函数
    II(::j)=reshape(zhrowcol);
end
toc
ZI=double(ZI);
% plot3( xI yI ZI‘k.‘‘LineWidth‘2);
hold on
surf(xyII(::1));
toc
% imshow(II);
% III=imsubtract(III);
% sum(sum(sum(III)))/(row*col*3)

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

     文件      62925  2019-04-21 10:31  MLS2D随机点拟合\2222.jpg

     文件       5259  2014-11-18 09:45  MLS2D随机点拟合\22result.jpg

     文件       1311  2019-04-21 10:29  MLS2D随机点拟合\MLS2D2.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 11:01  MLS2D随机点拟合

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

             13881993                    7


评论

共有 条评论