1. 程式人生 > 程式設計 >python實現根據給定座標點生成多邊形mask的例子

python實現根據給定座標點生成多邊形mask的例子

處理資料集的過程中用到了mask 但是源資料集中只給了mask頂點的座標值,那麼在python中怎麼實現生成只有0、1表示的mask區域呢?

主要借鑑cv2中的方法:

(我使用的資料情況是將頂點座標分別儲存在roi.mat中的x和y元素)

matfn = 'roi.mat'
data = sio.loadmat(matfn)
x_cor = data['x']
y_cor = data['y']
im = np.zeros(影象對應尺寸,dtype="uint8")
cor_xy = np.hstack((x_cor,y_cor))
cv2.polylines(im,np.int32([cor_xy]),1,1)
cv2.fillPoly(im,1)
mask_array = im

這樣就可以得到mask啦,注意:首先座標對是陣列形式,我們需要用‘[ ]' 轉換為列表形式,然後用np.int32轉化格式,這兩步都放在上述標紅程式碼中完成了。不然很容易報錯。

以上這篇python實現根據給定座標點生成多邊形mask的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。