Matlab 生成任意扇形区域

Matlab 生成任意扇形区域

% Generate sector mask as needed
function Sect_Mask = Generate_SectMask(width, height, cen_x, cen_y, CenAng_s, CenAng_e, r_s, r_e)
% Note: CenAng_s <= CenAng_e; CenAng_s, CenAng_e ~[-180, 180]

    % Initialization
    Sect_Mask = uint8(zeros(height, width));
    % Offsets referring to sector center
    off_x = [1:width] - cen_x;
    off_y = -1*([1:height] - cen_y);
    % 
    for i = 1:width
        for j = 1:height
            r = sqrt(off_x(i)^2 + off_y(j)^2);
            alpha = ( atan2( off_y(j), off_x(i) ) )*180/pi;
            % In sector: Angle & Radius
            if alpha >= CenAng_s && alpha <= CenAng_e && r >= r_s && r <= r_e
                Sect_Mask(j, i) = 1;
            end
        end
    end
end


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值