-1

我在 Matlab 中创建了六个用于遮罩的圆圈。每个面具的内半径和外半径都是不同的。这些面罩用于检测载玻片上的寄生虫。我有这个代码(其中一个面具),但我想在共享图像中做白色区域来圈出它。我怎样才能做到这一点?或有另一种方法来掩盖共享的图片? 中点圆.m

resize_factor = 1;
inner_rad = 15*4/resize_factor;
outer_rad = 20*4/resize_factor;

ec_2 = floor(0.5*(outer_rad+inner_rad)*2*pi);

center = outer_rad+2; 
mask1_size = center*2;

circleimg = zeros(mask1_size,mask1_size);
circleimg = MidpointCircle(circleimg, outer_rad, center, center, 1);
circleimg = MidpointCircle(circleimg, inner_rad, center, center, 1);
mask1 = circleimg;

在此处输入图像描述

4

1 回答 1

0

好的,现在我明白了。

您的函数 MidpointCircle 只创建一个圆圈的边框,而不是填充整个圆圈。以下代码计算到中心的距离并选择所有小于外半径和大于内半径的值:

clear all;

resize_factor = 1;
inner_rad = 15*4/resize_factor;
outer_rad = 20*4/resize_factor;

ec_2 = floor(0.5*(outer_rad+inner_rad)*2*pi);

center = outer_rad+2; 
mask1_size = center*2;

[x,y] = meshgrid(1:mask1_size,1:mask1_size);

distance = (x-center).^2+(y-center).^2;
mask = distance<outer_rad^2 & distance>inner_rad^2;

figure(1);
imshow(mask)

结果:

在此处输入图像描述

于 2015-06-02T10:59:51.247 回答