這個問題是關於HSV color space以前的問題。修改colorbar刻度和顏色範圍
比方說,我有兩個數組A
和B
,其中A
是在彩條顯示,以及B
是由HSV色彩空間,轉化爲RGB圖像的關注我的數據點(2D):色調在區間[0.25-1]
(對應于歸一化的A
值0.25-1),飽和度= 1,區間[0-1]
中的值(對應於一些其他值)。
當顯示B
與imshow
時,我想創建一個匹配的顏色條,其中的刻度對應的值範圍爲A
。
我面臨的第一個難題是我希望我的色調位於區間[0.25-1]
之內,因此我只需要顯示hsv
色條的某個部分。
第二個難點是我需要將A
的值範圍與顏色條相匹配。
示例代碼:
A = rand(30,30)*0.4; % Values range from 0 - 0.4
X = rand(30,30)*100+100; % Values range from 100 - 200
A_n = A/(max(A(:))/0.75) + 0.25; % "Normalize", with range 0.25 - 1
X_n = X/max(X(:)); % Normalize, range 0 - 1
colorRGB = NaN([size(A),3]); % preallocate
for ii = 1:size(A,1)
for jj = 1:size(A,2)
colorRGB(ii,jj,:) = hsv2rgb([A_n(ii,jj),1,X_n(ii,jj)]); % turn into RGB
end
end
imshow(colorRGB), % display image
colormap hsv; cb = colorbar();
你可以看到colourbar覆蓋整個HSV範圍,並有例蜱從0 - 1
我希望它是什麼僅顯示hsv範圍的上限75%,刻度從0到最大(A(:))
假設max(A(:))= 0.35的正確的色條應如下所示:
你其實可以告訴你如何做呢?代碼 –
嘗試發佈一個MCVE:https://stackoverflow.com/help/mcve –
@Ander Biguri添加了一個MCVE。我希望現在更清楚一點。 – Johannes