繁体   English   中英

Matlab:AlphaData的警告尺寸必须与CData匹配

[英]Matlab: Warning Dimensions of AlphaData must match CData

以下代码产生错误:

警告:AlphaData的尺寸必须为1x1,或者必须与CData相匹配。

问题在于CData是彩色图像,因此具有3个维度,而alphadata是透明数据abd的矩阵,因此具有2个维度。

red = cat(3, ones(512), zeros(512), zeros(512));
mask = [];
bounds = data(currow,1:6);
if slice >= bounds(5) && slice <= bounds(6)
    mask = zeros(size(segmask,1),size(segmask,2));
    mask(bounds(1)-4:bounds(2)+4,bounds(4)+4:bounds(4)+5) = 1;
    mask(bounds(2)+4:bounds(2)+5,bounds(3)-4:bounds(4)+4) = 1;
end
imshow(low(:,:,slice),[WL-WW/2 WL+WW/2])
hold on
h = imshow(red);
set(h, 'AlphaData', 0.3*mask);
hold off

这是Matlab文档中有关AlphaData和CData的信息


double或uint8的AlphaData m×n矩阵

透明度数据。 非NaN值的矩阵,指定对象的每个面或顶点的透明度。 AlphaData可以是double或uint8类。

MATLAB软件通过以下方式之一确定透明度:

将AlphaData的元素用作透明度值(AlphaDataMapping设置为none)

使用AlphaData的元素作为当前alphamap的索引(将AlphaDataMapping设置为direct)

将AlphaData的元素缩放到介于轴ALim属性的最小值和最大值之间(AlphaDataMapping设置为scaled,这是默认值)


CData矩阵| m×n×3阵列

图像数据。 值的矩阵或3-D数组,用于指定定义图像的每个矩形区域的颜色。 image(C)将C的值分配给CData。 MATLAB通过以下三种方式之一确定图像的着色:

使用CData的元素作为当前颜色图的索引(默认)(将CDataMapping设置为direct)

将CData的元素缩放到介于min(get(gca,'CLim'))和max(get(gca,'CLim'))之间的范围内(CDataMapping设置为scaled)

将CData的元素直接解释为RGB值(真彩色规范)

请注意,未定义图像CData中NaN的行为。 有关在图像上使用透明度的信息,请参见image AlphaData属性。


AlphaData和CData如何可能具有smae尺寸?

如果红色为512x512x3,掩码为512x512,则除了警告外,该代码似乎还可以正常工作。

我发现了我的问题。 由于使用了If语句,因此无法创建可变mask

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM