matlab convhull 離散點集獲得邊界

2021-08-21 14:12:37 字數 1086 閱讀 9540

由於matlab convhull獲得的是每個轉折點,要想根據這些轉折點獲得組成的邊界,首先想到的是matlab裡line或者plot函式,但是他們都是需要顯示出乙個figure,即使你設定了visual off 也會彈出乙個figure。因此想到了使用matlab的plot或者line函式,但是使用type 或者是edit line 都會顯示built-in function.這說明這些是看不到的,已經進行過優化的東西,只是公司不給公開。所以想到了如何重新實現line函式得到其離散點邊界問題。**如下

load('xymn.mat');%xy是邊界,mn是矩陣大小

h=convhull(x,y);%計算輪廓凸包

conv_mask=zeros(m,n);

for i=1:length(h)-1

x1=x(h(i));

y1=y(h(i));

x2=x(h(i+1));

y2=y(h(i+1));

if abs(x2-x1)>abs(y2-y1)

if(x1>x2)

x2=x(h(i));

y2=y(h(i));

x1=x(h(i+1));

y1=y(h(i+1));

endif(x1==x2)

con_mask(y1:y2,x1)=255;

else

for j=x1:x2

conv_mask(y1+round((j-x1)*(y2-y1)/(x2-x1)),j)=255;

endend

else

if(y1>y2)

x2=x(h(i));

y2=y(h(i));

x1=x(h(i+1));

y1=y(h(i+1));

endif(y1==y2)

con_mask(y1,x1:x2)=255;

else

for j=y1:y2

conv_mask(j,x1+round((j-y1)*(x2-x1)/(y2-y1)))=255;

endend

endend

figure,imshow(conv_mask);

matlab convhull 離散點集獲得邊界

由於matlab convhull獲得的是每個轉折點,要想根據這些轉折點獲得組成的邊界,首先想到的是matlab裡line或者plot函式,但是他們都是需要顯示出乙個figure,即使你設定了visual off 也會彈出乙個figure。因此想到了使用matlab的plot或者line函式,但是使...

華為離愛立信近了,離思科卻遠了

華為離愛立信近了,離思科遠了 李雲傑 文 在攀登世界級企業頂峰的道路上,華為又甩掉了一大對手。據市場研究公司dell oro近日公布的資料顯示,在全球電信裝置市場上,華為已經超越諾基亞西門子,成第二大電信裝置 商。截止今年底三季度華為所佔份額從去年同期的11 上公升至20 躍居第二 而愛立信繼續佔據...

斷捨離學習

2017.6.25 學習 斷捨離 有一段時間了,總覺得看完之後當時有種大徹大悟的感覺,但是後來這種感覺就慢慢消失了。為了讓自己時不時能感受一下當時的感受,還是在這裡記錄一下學習的感悟。第三章 先從整理頭腦開始 斷捨離的思考法則 一 選擇物品的竅門,不是 能不能用 而是 我要不要用 在考慮物品是不是應...