Вы, вероятно, можете сделать что-то вроде этого:
img = imread('someImage.jpg');
shape = insertShape(zeros(size(img,1),size(img,2)), 'FilledCircle',
[150 280 35], 'LineWidth',5, 'Color',1);
shape = imgaussfilt(shape);
img(:,:,1) = img(:,:,1) .* (1-shape); % + 0 * shape;
img(:,:,2) = img(:,:,2) .* (1-shape); % + 0 * shape;
img(:,:,3) = img(:,:,3) .* (1-shape) + 255 * shape;
imshow(img)
Я рисую фигуру на чистом (полутоновом) изображении, применяю к нему фильтр Гаусса, затем вставляю его с правильными весамив каждый канал.
Я не уверен, что аргумент 'Color',1
работает, цель состоит в том, чтобы нарисовать фигуру со значением 1 на изображении с серым, чтобы ее можно было использовать каквес (у меня нет Computer Vision System Toolbox, поэтому я не могу это проверить).