我必須創建一個地圖來顯示距離某個範圍的某些值的距離有多遠,並給出顏色的結果。同時,在該範圍內的值應該具有另一種不同的顏色。
例如:只有在[-2 2]之內的結果可以被認爲是有效的。對於其他值,顏色必須顯示距離這些限制有多遠(-3比-5更淺,顏色更深)
我試過色條但我無法設置自定義色標。
任何想法?? 在此先感謝!在matlab中創建一個定製的顏色條
0
A
回答
0
您需要爲您具有的值範圍定義顏色映射。
色圖是N * 3矩陣,定義每種顏色的RGB值。
請參見下面的例子中,對於範圍-10:10個有效值V1,V2:
v1=-3;
v2=+3;
a = -10:10;
graylevels=[...
linspace(0,1,abs(-10-v1)+1) , ...
ones(1, v2-v1-1) , ...
linspace(1,0,abs(10-v2)+1)];
c=repmat(graylevels , [3 1])';
figure;
imagesc(a);
colormap(c);
0
這裏,我只是放在一起展示創建自己的查找表的簡單方法一些代碼並將其值分配給您正在使用的圖像。我假設你的結果是在二維數組中,我只是使用隨機分配的值,但概念是相同的。
我提到HSV作爲着色方案的潛在應用。請注意,這需要你有一個m乘n乘3的矩陣。頂層是H - 色調,第二層是S - 飽和度,第三層是V或值(明/暗)。只需將H和S設置爲您想要的任何顏色值,並按照下面所示的類似方式改變V,即可獲得您想要的各種明暗顏色。
% This is just assuming a -10:10 range and randomly generating the values.
randmat = randi(20, 100);
randmat = randmat - 10;
% This should just be a black and white image. Black is negative and white is positive.
figure, imshow(randmat)
% Create your lookup table. This will illustrate having a non-uniform
% acceptable range, for funsies.
vMin = -3;
vMax = 2;
% I'm adding 10 here to account for the negative values since matlab
% doesn't like the negative indicies...
map = zeros(1,20); % initialized
map(vMin+10:vMax+10) = 1; % This will give the light color you want.
%linspace just simply returns a linearly spaced vector between the values
%you give it. The third term is just telling it how many values to return.
map(1:vMin+10) = linspace(0,1,length(map(1:vMin+10)));
map(vMax+10:end) = linspace(1,0,length(map(vMax+10:end)));
% The idea here is to incriment through each position in your results and
% assign the appropriate colorvalue from the map for visualization. You
% can certainly save it to a new matrix if you want to preserve the
% results!
for X = 1:size(randmat,1)
for Y = 1:size(randmat,2)
randmat(X,Y) = map(randmat(X,Y)+10);
end
end
figure, imshow(randmat)
相關問題
- 1. 自定義顏色條的顏色MATLAB
- 2. 在Matlab中定位顏色條
- 3. matlab中顏色條的顏色的自定義範圍?
- 4. 爲Matlab定製顏色圖
- 5. 線條顏色在MATLAB
- 6. 在WINAPI中創建一個顏色塊
- 7. Matlab的:添加顏色條
- 8. 從matplotlib中的RGBA函數創建一個顏色條
- 9. 在Matlab中繪製各種顏色的線條R2014b
- 10. 在繪製循環中的多條線時保留顏色(Matlab)
- 11. 在我的matplotlib旁邊創建一個顏色條,不使用顏色貼圖來繪製數據
- 12. 如何在純css中創建顏色自定義滾動條?
- 13. 如何在matplotlib顏色條中創建自定義斷點?
- 14. 如何在matlab中繪製一個3d圓圈填充顏色
- 15. 我如何創建一個標準的顏色條爲python
- 16. 繪製matlab中同一顏色的恆定輪廓
- 17. 如何在Matlab中繪製顏色塊
- 18. 在Matlab中構建顏色映射
- 19. 如何在matlab中創建較亮的顏色?
- 20. Matlab中的單色顏色
- 21. 從圖形matlab中去除顏色條
- 22. 如何添加顏色條在MATLAB
- 23. Matlab:2個非連續的顏色條和colormaps在同一個圖中
- 24. 創建一個新的可繪製的顏色
- 25. 爲單一顏色創建多個條件
- 26. 控制MATLAB中使用MSERRegions.plot()的顏色?
- 27. 繪製matlab中的顏色編碼圖
- 28. 用matlab中的顏色浮點範圍定製的顏色映射圖
- 29. 創建一個十六進制顏色基於JavaScript的
- 30. 在Emacs中,如何創建一個特定的顏色常量以映射到另一種顏色?
很簡單,很容易實現但萬一變化的規模也變化了。我該如何解決它? – Luis
您需要知道將哪種顏色分配給哪個值。例如,將最小值和最大值設置爲黑色,將平均值設置爲白色。其他選項是使用更穩健的數據百分比。一旦你決定,映射是很容易的:根據需要替換值-10,10,v1,v2以上的代碼。 –