影像變形MLSD2DTransform---matlab自帶的函式,其中內嵌的子函式PrecomputeWeights預先計算了權重,對三維資料可以使用
clear all;
mesh_source = ‘C:\Users\lixiaohu\Desktop\101028\101028_l\TOOTH_0.obj’;
[v,F] = load_mesh(mesh_source);
v=v(1:16,:)
v=v’
size(v,1)
p = [-1.0843 -1.2803 -1.5304 -1.4777 ;
-3.1908 -3.1335 -3.0674 -3.0253;
-3.1908 -3.1335 -3.0674 -3.0253];
repmat(p(:,1),[1,size(v,2)])-v
w=PrecomputeWeights(p,v,2)
%
% repmat(p(:,1),[1,size(v,1)])-v’
Pstar = PrecomputeWCentroids(p,w);
M1 = v - Pstar;
a = zeros(1,size(Pstar,2));
b = a;
d = a;
Phat = cell(1,size(p,2));
for i=1:size(p,2)
Phat{i} = repmat(p(:,i),[1,size(Pstar,2)])-Pstar;
a = a + w(i,:).*Phat{i}(1,:).^2;
b = b + w(i,:).*Phat{i}(1,:).*Phat{i}(2,:)
d = d + w(i,:).*Phat{i}(2,:).^2
end
執行結果
Pstar = PrecomputeWCentroids(p,w)
Pstar =
-1.3445 -1.3447 -1.3442 -1.344 -1.3444 -1.3447 -1.3449 -1.3457 -1.3458 -1.3461 -1.3454 -1.3446 -1.3441 -1.3436 -1.3438 -1.3435
-3.1034 -3.1033 -3.1035 -3.1036 -3.1034 -3.1033 -3.1033 -3.103 -3.1029 -3.1029 -3.1031 -3.1033 -3.1035 -3.1037 -3.1036 -3.1037
-3.1034 -3.1033 -3.1035 -3.1036 -3.1034 -3.1033 -3.1033 -3.103 -3.1029 -3.1029 -3.1031 -3.1033 -3.1035 -3.1037 -3.1036 -3.1037
M1 = v - Pstar
M1 =
2.3105 2.2425 2.3533 2.4221 2.3424 2.2746 2.2249 2.038 2.0007 1.9343 2.0629 2.2246 2.3421 2.4737 2.4552 2.5385
3.9956 4.0692 3.9985 3.9137 3.9273 3.9565 4.0432 4.1844 4.2351 4.283 4.1876 4.0763 4.0164 3.955 3.9367 3.8959
3.8089 3.7174 3.6999 3.8551 3.9683 4.0005 3.8981 4.0514 3.9442 3.8814 3.6956 3.5969 3.5901 3.6063 3.7114 3.7918
repmat(p(:,i),[1,size(Pstar,1)])
ans =
-1.0843 -1.0843 -1.0843
-3.1908 -3.1908 -3.1908
-3.1908 -3.1908 -3.1908
Phat{i} = repmat(p(:,i),[1,size(Pstar,2)])-Pstar
Phat =是一個結構體,用來承載與P*這個重心的距離差,即去重心化後的座標。
1×4 cell 陣列
{3×16 double} {0×0 double} {0×0 double} {0×0 double}
a = a + w(i,:).*Phat{i}(1,:).^2
a =
5.2061e-05 5.3246e-05 5.3843e-05 5.1402e-05 4.9685e-05 4.9209e-05 5.0118e-05 4.6011e-05 4.7441e-05 4.8313e-05 5.3087e-05 5.6067e-05 5.6078e-05 5.5263e-05 5.3602e-05 5.1548e-05
b = b + w(i,:).*Phat{i}(1,:).*Phat{i}(2,:)
b =
-1.7489e-05 -1.7888e-05 -1.8088e-05 -1.7267e-05 -1.669e-05 -1.6531e-05 -1.6837e-05 -1.5457e-05 -1.5938e-05 -1.6232e-05 -1.7836e-05 -1.8837e-05 -1.884e-05 -1.8564e-05 -1.8006e-05 -1.7315e-05
相關文章
- 函式外與函式內的變數函式變數
- Sql Server函式全解(三)資料型別轉換函式和文字影像函式SQLServer函式資料型別
- Python自帶的函式Python函式
- JVM鉤子函式的使用JVM函式
- 課時20:內嵌函式和閉包函式
- Python 內嵌函式運用(探究模組)Python函式
- javascript函式引數和函式內同名變數的關係JavaScript函式變數
- PostgreSQL核心自帶的Oracle相容函式SQLOracle函式
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- 函式定義、函式的引數、函式的預設引數函式
- Python函數語言程式設計自帶函式Python函數程式設計函式
- Oracle 內建函式三Oracle函式
- webgl內建函式--角度和三角函式Web函式
- JS中函式內套函式的呼叫JS函式
- 鑲嵌資料集工具小結(十)函式鏈函式
- 第五篇 匿名函式、內建函式、import的使用、包的使用函式Import
- 自帶的 print 函式居然會報錯?函式
- 後來才知道的JavaScript自帶函式JavaScript函式
- 第4周專案1-三角形類的建構函式(1)-使用帶引數建構函式函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- C++行內函數、函式過載與函式預設引數C++函數函式
- 函式: 函式是怎麼使用的?函式
- Oracle分析函式、多維函式和Model函式簡要說明,主要針對BI報表統計Oracle函式
- webgl內建函式--指數函式Web函式
- webgl內建函式--通用函式Web函式
- 計算機程式的思維邏輯 (93) – 函式式資料處理 (下)計算機函式
- 計算機程式的思維邏輯 (93) - 函式式資料處理 (下)計算機函式
- 計算機程式的思維邏輯 (92) - 函式式資料處理 (上)計算機函式
- 函式中的私有變數和特權方法函式變數
- QImage:使用QImage建構函式載入影像和使用成員函式loadFromData載入影像的區別函式
- 排序(對於 sort 函式的使用)排序函式
- 函式式思維和函數語言程式設計函式函數程式設計
- 使用bind()函式的產生的函式用作建構函式this的指向函式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- C++函式中那些不可以被宣告為虛擬函式的函式C++函式
- C語言中使用系統自帶的快排函式C語言函式
- 第4周專案1-三角形類的建構函式(3)-使用有預設引數的建構函式函式