在图像上绘制填充的矩形并控制Alpha通道

时间:2017-09-16 02:16:34

标签: matlab image-processing octave

在Octave / Matlab中如何在图像上绘制填充矩形(透明度为50%)?

我知道如何画一个这样的轮廓矩形:

img = imread('foo.jpg');
imshow(img);
hold;
rectangle('Position', [cx, cy, 10, 10], 'EdgeColor', [1,0,0], 'LineWidth', 50, 'LineStyle','-');

但是以下内容不会绘制一个透明的填充矩形:

img = imread('foo.jpg');
imshow(img);
hold;
%Draw filled red rectangle with 50% transparency.
rectangle('Position', [cx, cy, 10, 10], 'FaceColor', [1,0,0, 0.5], 'LineWidth', 50, 'LineStyle','-');

1 个答案:

答案 0 :(得分:0)

在MATLAB中,您可以使用patch代替rectangle

px = [0 1 1 0]*width + x;
py = [0 0 1 1]*height + y;
patch(px, py, 'Black', 'FaceColor', [1,0,0], 'LineWidth', 50, 'LineStyle', '-', 'FaceAlpha', 0.5);