python實現根據給定座標點生成多邊形mask的例子
阿新 • • 發佈:2020-02-19
處理資料集的過程中用到了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的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。