我正在绘制一个正方形图像,但是由于我的摄像机观察不到圆形构造,我希望图像看起来也是圆形的。所以要做到这一点,我只是想为图像创建一个蒙版(基本上是创建一个矩阵,然后用蒙版乘以我的数据,所以如果我想保留图像,我会乘以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