簡體   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