gpt4 book ai didi

matlab - 为我的图形创建一个圆形 mask

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:05 24 4
gpt4 key购买 nike

我正在绘制一个方形图像,但由于我的相机 View 是循环结构,所以我希望图像看起来也是圆形的。所以要做到这一点,我只是想为图像创建一个掩码(基本上创建一个矩阵,然后将我的数据乘以掩码,所以如果我想保留我的图像我乘以一个,如果我想要那部分图像变黑,我乘以 0)。

不过,我不确定制作代表圆形开口的矩阵的最佳方法。我只希望圆圈内的每个元素都是“1”,圆圈外的每个元素都是“0”,这样我就可以相应地为图像着色。我正在考虑做一个 for 循环,但我希望有一种更快的方法来做到这一点。所以...我只需要:

  • 1280x720 的矩阵
  • 我需要一个直径为 720 的圆,以 1280x720 矩阵的中间为中心(我的意思是圆内对应的所有元素都有一个“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 循环

谢谢,如果有任何不清楚的地方,请告诉我!

最佳答案

@kol 的回答看起来是正确的。您可以使用 meshgrid 对矢量化代码执行此操作功能。

width = 1280;
height = 720;
radius = 360;
centerW = width/2;
centerH = height/2;
[W,H] = meshgrid(1:width,1:height);
mask = ((W-centerW).^2 + (H-centerH).^2) < radius^2;

关于matlab - 为我的图形创建一个圆形 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com