在物理領域,質心就是質量中心,規則均密度物體的質心就是幾何中心。不規則物體可以通過垂繩法來尋求
幾何距(geometric moments)知識與質心尋找原理
image moments(影象距)是影象處理中非常有用的演算法,可以用來計算區域影象的質心,方向等幾何特性, 同時mpq的高階具有旋轉不變性,可以用來實現影象的比較分類,數學表示式:
根據pq值不同,有m00,m01,m10可以用來計算質心,中心化後m11,m02,m20可以用來計算區域的方向/角度
二值影象中大於0的畫素個數就是影象的面積演算法流程:座標x乘以每個畫素點的值 求和,除以影象中畫素值的和得到質心:
a. 輸入影象轉換為二值影象
b. 通過連通元件標記演算法找到的所有的連通區域,並分別標記
c. 對每個連通域計算幾何距演算法得到質心
d. 用不同顏色繪製連通域和質心,然後輸出影象
**:
## 例1:單連通域的質心
img=imread('bw.tif');
[m,n]=size(img);
l=bwlabel(img);
sum_x=0;sum_y=0;area=0;
for i=1:m
for j=1:n
if l(i,j)==1
sum_x=sum_x+i; %所有x*f(x)的和
sum_y=sum_y+j; %所有y*f(y)的和
area=area+1; %面積求和
endend
endplot_x=fix(sum_x/area);
plot_y=fix(sum_y/area);
figure();
imshow(img);
hold on
plot(plot_y,plot_x,'*');
## 例2:多連通域的質心
for i=1:height %%迴圈中進行反色
for j=1:width
if i_bw(i,j)==1
i_bw(i,j)=0;
else i_bw(i,j)=1;
endendend
[l,num]=bwlabel(i_bw,8); %num是連通域個數
plot_x=zeros(1,num); %%用於記錄質心位置的座標
plot_y=zeros(1,num);
for k=1:num %%num個區域依次統計質心位置
sum_x=0;sum_y=0;area=0;
for i=1:height
for j=1:width
if l(i,j)==k
sum_x=sum_x+i;
sum_y=sum_y+j;
area=area+1;
endend
endplot_x(k)=fix(sum_x/area);
plot_y(k)=fix(sum_y/area);
endfigure(1);
imshow(i_bw);
for i=1:num
hold on
plot(plot_y(i) ,plot_x(i), '*');
end
關於regionprops的使用,移步matlab影象處理函式:regionprop## 例3:利用regionprops的'centroid'表示方法
label=bwlabel(bw);
stats = regionprops(label,'centroid') %利用regionprops的'centroid'表示方法
point=stats.centroid %point是一串座標x1,y1,x2,y2...
figure();
imshow(bw);
hold on
plot(point(1) ,point(2), '*');
end
連通域求解
影象處理中連通域指由前景相同畫素,並且相同畫素鄰接的畫素組成的域。影象處理中一般都是對二值影象 1白色,0為黑色,一般前景為0黑色 做連通域分析。連通域分析指把連通域找出來並且標記出來。連通域標記方法 1 兩次遍歷實現 2 深度優先搜尋遍歷 1.第一次遍歷 如果當前元素為0則賦值乙個label,le...
連通域標記
二值影象,顧名思義就是影象的亮度值只有兩個狀態 黑 0 和白 255 二值影象在影象分析與識別中有著舉足輕重的地位,因為其模式簡單,對畫素在空間上的關係有著極強的表現力。在實際應用中,很多影象的分析最終都轉換為二值影象的分析,比如 醫學影象分析 前景檢測 字元識別,形狀識別。二值化 數學形態學能解決...
連通域數量的統計
參考科學出版社的 opencv2 計算機視覺程式設計手冊 進行程式設計。相對乙個車牌區域內的字元數量進行粗略的統計,運用了將每個字元的區域化成外部輪廓的連通域然後進行數量上的統計。用到的主要是c 的mat資料,和findcontours 函式。對應c的介面是cvfindcontours。includ...