vca逐次投影演算法(successive projections algorithm, spa),先找到第乙個初始端元,然後迴圈尋找乙個與已提取的端元正交的投影矩陣,再將像元投影至該矩陣,投影長度最大的則為新提取的端元。下面給出**,還請大家幫忙分析,在此表示感謝!
張兵,孫旭.高光譜影象混合像元分解[m].北京:科學出版社,2015.
clear all;
close all;
clc;
load sancut64_86.mat;
[lines, columns, bands] = size(newpic);
n = lines * columns; % 像元數
idata = reshape(newpic, n, bands); % idata:像元 * 波段
idata = idata'; % idata:波段 * 像元
numendmember = 4; % 端元數
% 提取第乙個端元
data = zeros();
for i = 1:n
data(i,:) = (norm(idata(:,i), 2)).^2;
end[val, id] = max(data);
e(:,1) = idata(:,id);
% 提取後續端元
ik = eye(bands);
for k = 1 : numendmember-1
ek1 = e(:,1:k) / (e(:,1:k)'*e(:,1:k)) * e(:,1:k)';
ek = ik - ek1;
for i = 1:n
data(i,:) = (norm(ek*idata(:,i), 2)).^2;
end[val, id] = max(data);
e(:,k+1) = idata(:,id);
ende
頂點成分分析(vertex component analysis, vca),書中所述其與spa的思路非常相似,只是其中的公式略有不同。下面給出**,還請大家幫忙分析,在此表示感謝!
張兵,孫旭.高光譜影象混合像元分解[m].北京:科學出版社,2015.
clear all;
close all;
clc;
load sancut64_86.mat;
[lines, columns, bands] = size(newpic);
n = lines * columns; % 像元數
idata = reshape(newpic, n, bands);
idata = idata'; % idata:波段 * 像元
numendmember = 4; % 端元數
% 提取第乙個端元
data = zeros();
for i = 1:n
data(i,:) = (norm(idata(:,i), 2)).^2;
end[val, id] = max(data);
e(:,1) = idata(:,id);
% 提取後續端元
data = zeros();
ik = eye(bands);
sigma = randn(bands, 1);
for k = 1 : numendmember-1
ek1 = e(:,1:k) / (e(:,1:k)'*e(:,1:k)) * e(:,1:k)';
ek = ik - ek1;
wk = (ek * sigma) / (norm((ek * sigma), 2));
for i = 1:n
data(:,i) = abs(wk' * idata(:,i));
end[val, id] = max(data);
e(:,k+1) = idata(:,id);
ende
端元提取 光譜角 端元提取光譜角檢測模型
什麼是端元?端元 endmember 只包含一種地物資訊,一般的像元都為混合像元,包括多種地物。在進行混合像元分解的時候,可以對乙個像元中包括的幾種端元進行定量描述,求得每個像元中幾種端元在這個像元中的面積百分比,即端元的豐度。什麼是端元提取?端元提取 endmember extraction,ee...
點雲平面提取 點雲處理 平面分割與投影
pcl是乙個比較經典的點雲處理庫,目前在工作中用到了一些。這個庫,是乙個模組化比較不錯的模板庫,不過模組間的隔離不太好,還有boost flann vtk等標頭檔案或者庫檔案依賴,使用起來很不友好。還有乙個大問題,模板 編譯太慢了,實在難受。於是我重新封裝了一套 建立了 kpointcloud kp...
關於四維 球極投影和四元數
雖然我現在仍然沒明白思維投影到三維的細節,這兩天真是想的我腦袋疼,看來抽象思維能力還是欠缺了一些。但是我仍然想再磕幾天,試圖弄懂投影過程。太奇妙了,第一次接觸球極投影。二維的圓,投影到一維是一條無限遠的直線,於是二維的旋轉,在一維的眼裡,只不過是直線在滑動,就像水渠裡的水流一樣。三維的球,投影到二維...