最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
最小距離分類器
%最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
function re=mindis()
[filename,pathname]=uigetfile({'*.jpg;*.bmp;*.tif;*.png;*.gif','All Image Files';'*.*','All Files'});%動態開啟檔案
image = imread([pathname,filename]);%讀取
figure(1);imshow(image);
image=double(image);
[m,n,bands]=size(image);
k=input('請輸入要分類的個數: ');%輸入要選取的樣本類別數
aver=zeros(k,bands);%申請矩陣空間儲存樣本資料各類別各波段均值
%對所選取樣本資料進行處理求得各類別均值
for i=1:k%對選中類別迴圈
str=['請在螢幕影像上選擇第',num2str(i),'種分類樣本,選擇完畢請回車確定'];
disp(str);
[y,x]=getpts;%從影像上獲取資料點
A=[round(y),round(x)];
for band=1:bands%對影像每個波段進行計算,求取指定類別每個波段均值
Sum=0;
for count=1:size(A,1)%對取得點迴圈
temp=image(:,:,band);
Sum=Sum+temp(A(count,2),A(count,1));
end
aver(i,band)=Sum/size(A,1);%求均值
end
end
image=reshape(image,m*n,bands);%將影像資料重塑成為一列為一個波段資料的形式,便於計算
dis=zeros(k,m*n);%申請矩陣空間儲存每個類別影像各個點資料分別到各波段均值的距離的和
type=input('請輸入要選擇的分類型別: 1.歐式距離 2.馬氏距離 3.計程距離 : ');
switch type%分別代入不同公式
case 1
%對每個類別進行迴圈,求出各個類別的距離,後面進行比較
for t=1:k
tem=image-aver(t,:);%影像資料與樣本每個類別每個波段均值分別求差值
dis(t,:)=sqrt(sum((tem.*tem).')); %和的平方根
end
case 2
%申請矩陣儲存樣本資料均值協方差
T=zeros(bands,bands,k);
for t=1:k
T(:,:,t)=cov(aver);%求取協方差
tem=image-aver(t,:);
dis(t,:)=sqrt(sum((tem*T(:,:,t).*tem).')); %同上
end
case 3
for t=1:k
tem=image-aver(t,:);
dis(t,:)=sum(abs(tem.'));%絕對值之和
end
end
[~,index]=min(dis);%求各距離最小值
index=reshape(index,m,n);%重塑回原影像排列
re=index/k;%給各類別賦值指定灰度值便於區分,也可賦值其他
figure(2),imshow((re));%顯示
end
相關文章
- PostgreSQL遺傳學應用-矩陣相似距離計算(歐式距離,…XX距離)SQL矩陣
- JavaScript獲取元素距離文件頂部的距離JavaScript
- milvus 使用 l2 歐式距離計算向量的距離,計算出來的距離的最大值是多少?
- 曼哈頓距離與切比雪夫距離的互化
- javascript獲取元素距離網頁頂部的距離JavaScript網頁
- JavaScript 元素距離視窗頂部的距離JavaScript
- 編輯距離及編輯距離演算法演算法
- Laravel 距離排序Laravel排序
- 【動態規劃】字串最小編輯距離Java實現動態規劃字串Java
- RecyclerView滑動距離計算View
- 空間距離計算
- 距離度量學習
- Vijos1680距離/openjudge2988計算字串的距離[DP]字串
- jQuery獲取div距離視窗頂部或者父元素頂部的距離jQuery
- 28、(向量)歐幾里得距離計算
- 計算字串編輯距離字串
- 特徵選擇(一)-維數問題與類內距離特徵
- jQuery獲取網頁中的元素距離文件邊緣的距離程式碼例項jQuery網頁
- 經緯度互換和計算距離
- 原生JS獲取DOM 節點到瀏覽器頂部的距離或者左側的距離JS瀏覽器
- 求兩向量距離的CUDA實現
- 動態規劃-編輯距離動態規劃
- PyTorch 實戰:計算 Wasserstein 距離PyTorch
- 洛谷 1279 字串距離字串
- 編輯距離演算法演算法
- 求矩陣中向量兩兩間的歐氏距離(python實現)矩陣Python
- 461.漢明距離(c++實現)C++
- 如何獲取向下滾動的距離
- Redis計算地理位置距離-GeoHashRedis
- 1062. 計算曼哈頓距離
- 地理空間距離計算優化優化
- 【scipy 基礎】--正交距離迴歸
- RQNOJ 514 字串距離:dp & 字串字串
- eMarketer:定位廣告的距離問題
- 排列木樁;及模糊距離分析
- 最短編輯距離演算法演算法
- 【谷歌面試題】求陣列中兩個元素的最小距離谷歌面試題陣列
- 一種統計ListView滾動距離的方法View