在matlab中改变图像、补丁或表面的透明度

2025-10-04 21:30:29

1、轴中所有对象的透明度

透明值称为alpha值。

使用alpha函数为当前轴中的所有图像、补丁和曲面对象设置透明度。

指定介于0(完全透明)和1(完全不透明)之间的透明度值。

命令行键入:

t = 0:0.1:2*pi;

x = sin(t);

y = cos(t);

figure

patch(x,y,'r')            % make a red circular patch

patch(x+0.8,y,'g')        % make a green circular path

patch(x+0.4,y+0.8,'b')    % make a blue circular path

axis square tight         % set axis to square

alpha(0.3)                % set all patches transparency to 0.3

2、按“Enter"键。

如图1所示。

在matlab中改变图像、补丁或表面的透明度

3、个别表面的透明度

一个曲面的透明度是由它的AlphaData属性定义的。

将alpha数据设置为标量值或值矩阵,指定曲面的每个顶点的透明度。

FaceAlpha属性指示了如何通过顶点透明度来确定曲面的透明度。

命令行键入:

[X,Y,Z] = peaks(20);

s2 = surf(X,Y,Z);

s2.AlphaData = gradient(Z);    % set vertex transparencies

s2.FaceAlpha = 'flat';

4、按“Enter"键。

如图2所示。

在matlab中改变图像、补丁或表面的透明度

5、单个图像的透明度

与曲面一样,图像的透明度也是由其AlphaData属性定义的。

对于图像,将alpha数据设置为标量值或值矩阵,指定图像数据中每个元素的透明度。

例如,使用透明度来复盖两个图像。

首先,显示地球的图像。

命令行键入:

earth = imread('landOcean.jpg');

image(earth)    % display Earth image

axis image

6、按“Enter"键。

如图3所示。

在matlab中改变图像、补丁或表面的透明度

7、然后,添加一个云层到地球的图像使用透明度。

命令行键入:

clouds = imread('cloudCombined.jpg');

image(earth)

axis image

hold on

im = image(clouds);

im.AlphaData = max(clouds,[],3);    % set transparency to maximum cloud value

hold off

8、按“Enter"键。

如图4所示。

在matlab中改变图像、补丁或表面的透明度

9、个别补丁的透明度

一个补丁的透明度是由它的脸型和脸型属性定义的。

对于整个补丁中的持续透明性,将FaceVertexAlphaData设置为0(完全透明)和1(完全不透明)之间的常量,并将FaceAlpha属性设置为“平坦”。

命令行键入:

cla

p1 = patch(x,y,'r');             % make a red circular patch

axis square tight                % set axis to square

p1.FaceVertexAlphaData = 0.2;    % Set constant transparency

p1.FaceAlpha = 'flat' ;          % Interpolate to find face transparency

10、按“Enter"键。

如图5所示。

在matlab中改变图像、补丁或表面的透明度

11、对于在补丁中变化的透明性,将FaceVertexAlphaData设置为值矩阵,指定补丁的每个顶点或每个面的透明性。

然后,FaceAlpha属性指示如何使用FaceVertexAlphaData来确定人脸透明度。

如果指定了顶点的alpha数据,则FaceAlpha必须设置为“interp”。

命令行键入:

p1.FaceVertexAlphaData = x';   % Set vertex transparency to x values

p1.FaceAlpha = 'interp' ;      % Interpolate to find face transparency

12、按“Enter"键。

如图6所示。

在matlab中改变图像、补丁或表面的透明度

13、透明度与纹理映射

纹理映射将二维图像映射到三维表面。 

通过将CData属性设置为图像数据并将FaceColor属性设置为“纹理贴图”,可以将图像映射到曲面。

这个例子创建了一个地球和云的三维视图。

它创建球形表面,并使用纹理映射将地球和云的图像映射到表面上。

命令行键入:

[px,py,pz] = sphere(50);                % generate coordinates for a 50 x 50 sphere

cla

sEarth = surface(py, px ,flip(pz));

sEarth.FaceColor = 'texturemap';        % set color to texture mapping

sEarth.EdgeColor = 'none';              % remove surface edge color

sEarth.CData = earth;                   % set color data

hold on

sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02);

sCloud.FaceColor = 'texturemap';        % set color to texture mapping

sCloud.EdgeColor = 'none';              % remove surface edge color

sCloud.CData = clouds;                  % set color data

sCloud.FaceAlpha = 'texturemap';        % set transparency to texture mapping

sCloud.AlphaData = max(clouds,[],3);    % set transparency data

hold off

view([80 2])                            % specify viewpoint

daspect([1 1 1])                        % set aspect ratio

axis off tight                          % remove axis and set limits to data range

14、按“Enter"键。

如图7所示。

在matlab中改变图像、补丁或表面的透明度

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢