get_pix_set.m

来自「this is a very very very nice code」· M 代码 · 共 29 行

M
29
字号
function pix_set = get_pix_set(mask)

mask_set = [];
wind_set = [];
tmp_mask = ~mask;
SE = strel('arbitrary',ones(3,3));
while sum(sum(tmp_mask)) > 0
    M = imerode(tmp_mask, SE);
    M = tmp_mask - M;
    wind = get_window(~M);
    wind = max(wind, 2);
    wind = min(wind, [9999, size(mask,1)-1, 9999, size(mask,2)-1]);
    mask_set = [mask_set; M];
    wind_set = [wind_set; wind];
    tmp_mask = tmp_mask - M;
end

pix_set = [];
for i = 1:size(mask_set,1)/size(mask,1)
    loc_pix_set = [];
    for y = (i-1)*size(mask,1)+1:i*size(mask,1)
        for x = 2:size(mask,2)-1
            if mask_set(y,x) == 1 & y-(i-1)*size(mask,1) > 1 & y-(i-1)*size(mask,1) < size(mask,1)
                loc_pix_set = [loc_pix_set; [y-(i-1)*size(mask,1),x]];
            end
        end
    end
    pix_set = [pix_set; loc_pix_set];
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?