Поместите размытый круг на JPEG в MATLAB? - PullRequest
0 голосов
/ 08 июня 2018

Если я собираюсь сгенерировать окружность для размещения на изображении JPEG с помощью функции insertShape, например, так:

img = imread('someImage.jpg');
img = insertShape(img, 'FilledCircle', [150 280 35], ...
    'LineWidth',5, 'Color','blue');
imshow(img)

Можно ли применить что-то вроде гауссовского синегок кругу, но не ко всему изображению JPEG?

1 Ответ

0 голосов
/ 08 июня 2018

Вы, вероятно, можете сделать что-то вроде этого:

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, поэтому я не могу это проверить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...