在MATLAB中的jpeg上放置一个模糊的圆圈?

时间:2018-06-08 01:15:30

标签: matlab image-processing

如果我要使用insertShape函数生成一个放置在JPEG图像上的圆圈,请执行以下操作:

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

我有办法在圆圈上应用像高斯蓝这样的东西,而不是整张JPEG图像吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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的形状,以便它可以用作权重(我没有计算机视觉系统工具箱,因此无法对此进行测试。