在matlab中改变图像、补丁或表面的透明度
来源:网络收集 点击: 时间:2024-03-14轴中所有对象的透明度
透明值称为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/14按“Enter键。
如图1所示。

个别表面的透明度
一个曲面的透明度是由它的AlphaData属性定义的。
将alpha数据设置为标量值或值矩阵,指定曲面的每个顶点的透明度。
FaceAlpha属性指示了如何通过顶点透明度来确定曲面的透明度。
命令行键入:
= peaks(20);
s2 = surf(X,Y,Z);
s2.AlphaData = gradient(Z); % set vertex transparencies
s2.FaceAlpha = flat;
4/14按“Enter键。
如图2所示。

单个图像的透明度
与曲面一样,图像的透明度也是由其AlphaData属性定义的。
对于图像,将alpha数据设置为标量值或值矩阵,指定图像数据中每个元素的透明度。
例如,使用透明度来复盖两个图像。
首先,显示地球的图像。
命令行键入:
earth = imread(landOcean.jpg);
image(earth) % display Earth image
axis image
6/14按“Enter键。
如图3所示。

然后,添加一个云层到地球的图像使用透明度。
命令行键入:
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/14按“Enter键。
如图4所示。

个别补丁的透明度
一个补丁的透明度是由它的脸型和脸型属性定义的。
对于整个补丁中的持续透明性,将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/14按“Enter键。
如图5所示。

对于在补丁中变化的透明性,将FaceVertexAlphaData设置为值矩阵,指定补丁的每个顶点或每个面的透明性。
然后,FaceAlpha属性指示如何使用FaceVertexAlphaData来确定人脸透明度。
如果指定了顶点的alpha数据,则FaceAlpha必须设置为“interp”。
命令行键入:
p1.FaceVertexAlphaData = x; % Set vertex transparency to x values
p1.FaceAlpha = interp ; % Interpolate to find face transparency
12/14按“Enter键。
如图6所示。

透明度与纹理映射
纹理映射将二维图像映射到三维表面。
通过将CData属性设置为图像数据并将FaceColor属性设置为“纹理贴图”,可以将图像映射到曲面。
这个例子创建了一个地球和云的三维视图。
它创建球形表面,并使用纹理映射将地球和云的图像映射到表面上。
命令行键入:
= 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() % specify viewpoint
daspect() % set aspect ratio
axis off tight % remove axis and set limits to data range
14/14按“Enter键。
如图7所示。

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_351942.html