我正在繪製一個正方形圖像,但是由於我的攝像機觀察不到圓形構造,我希望圖像看起來也是圓形的。所以要做到這一點,我只是想爲圖像創建一個蒙版(基本上是創建一個矩陣,然後用蒙版乘以我的數據,所以如果我想保留圖像,我會乘以1,如果我想要那部分圖像去黑色,我乘以0)。爲我的圖形創建圓形蒙版
我不確定製作代表圓形開口的矩陣的最佳方式。我只希望圓內的每個元素都是「1」,而圓外的每個元素都是「0」,因此我可以相應地爲圖像着色。我正在考慮做一個for循環,但我希望有一個更快的方法來做到這一點。所以...我需要的是:
- 是爲1280x720
- 我需要有一個直徑爲720圈,在1280×720的矩陣的中間(中心矩陣我說的,這是所有對應於作爲圓內元件具有一個「1」和所有其它元素具有「0」
我嘗試
mask = zeros(1280,720)
for i = 1:1280
for j = 1:720
if i + j > 640 && i + j < 1360
mask(i,j) = 1;
end
end
end
那麼上述顯然不工作,我需要看看它更好地形成一個更好的方程來確定何時添加1 = P,但理想情況下,我想不使用for循環
謝謝,讓我知道如果什麼都不清楚!
而獲勝者是...... PeterM!除了半徑應該是360而不是720之外,這個工作非常完美。此代碼在kol's時花費了0.0271秒,而正確的花費了0.0763秒。因此,以這種方式快3倍,謝謝=) – spaderdabomb
答案更新了正確的半徑。 – PeterM
+1尼斯解決方案! – kol