请问在matlab中如何在一个矩形中填充半透明的红色。如下图:

2024-12-01 03:35:41
推荐回答(1个)
回答1:

给出正方形四个顶点的x坐标和y坐标

patch(x,y,'r')就可以在x,y指定位置画一个黑边红色的正方形

加上'facealpha'属性可以设置红色的不透明度透明度

不透明度取值范围0~1,取0时完全透明,取1时完全不透明


注意坐标是按照正方形四个角顺时针或逆时针顺序给出

例如最简单的在0~1区间的单位正方形

其四个角的坐标是(0,0) (0,1) (1,1) (1,0)

这个时候x=[0 0 1 1]; y=[0 1 1 0];


下面是一个例子

在图片上划分10x10的格子,随机画上半透明正方形

I = imread('cameraman.tif');
imshow(0:10,0:10,I);hold on;
a=rand(10)>0.3;
[m n]=find(a);
for ii=1:length(m)
    x=n(ii)+[-1 0 0 -1];
    y=m(ii)+[-1 -1 0 0];
    patch(x,y,'r','facealpha',0.5);
end
hold off;
axis equal;