转载自
http://mirlab.org/jang/books/matlabProgramming4beginner/04-3_colorControl.asp?title=4-3%20%A6%B1%AD%B1%C3C%A6%E2%AA%BA%B1%B1%A8%EE
4-3 曲面顏色的控制
利用 colorbar 指令,可顯示 MATLAB 如何以不同顏色來代表曲面的高度,例如若先輸入「peaks」,再輸入「colorbar」,就可以得到下列圖形:
peaks;colorbar;
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)
如上圖所示,colorbar 可以顯示高度與顏色的對照長條圖,而曲面上每一個小方塊的顏色即根據此對照圖而得出。事實上,顏色與高度的對應關係是由一個「顏色對應表」(Colormap,或簡稱「色表」或「色盤」)來控制,此表是一個 m×3 的矩陣,m 的值通常是 64,代表真正用到的顏色個數,而每一列代表一個顏色的 RGB 值,一些常用的值可列表如下:
顏色
|
Red(紅色)
|
Green(綠色)
|
Blue(藍色)
|
black(黑)
|
0
|
0
|
0
|
white(白)
|
1
|
1
|
1
|
red(紅)
|
1
|
0
|
0
|
green(綠)
|
0
|
1
|
0
|
blue(藍)
|
0
|
0
|
1
|
yellow(黃)
|
1
|
1
|
0
|
magenta(錳紫)
|
1
|
0
|
1
|
cyan(青藍)
|
0
|
1
|
1
|
gray(灰)
|
0.5
|
0.5
|
0.5
|
dark red(暗紅)
|
0.5
|
0
|
0
|
copper(銅色)
|
1
|
0.62
|
0.4
|
aquamarine(碧綠)
|
0.49
|
1
|
0.83
|
MATLAB 預設的顏色對應表可由 colormap 得知,如下:
cm=colormap;size(cm)
ans = 64 3
由上可知 cm 是一個 64×3 的矩陣,因此 MATLAB 在畫圖時,會把 cm 第一列的顏色設定給曲面的最高點,把 cm 的最後一列的顏色設定給曲面的最低點,其餘高度的顏色則依線性內插法來決定。因此,我們只要改變顏色對應表,即可得到不同顏色的曲面。欲改變顏色對應表,也是用 colormap 指令,如下:
peaks;colormap(rand(64,3));colorbar;
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)
在上述範例中,我們使用亂數來產生一個 64×3 顏色對應表,因此曲面看起來並不是很賞心悅目。事實上,要產生一個好看的顏色對應表並不是件容易的事,因此 MATLAB 有一些現成的顏色對應表,整理如下:
指令
|
說明
|
colormap hsv
|
HSV 的顏色對應表(預設值)
|
colormap hot
|
代表“熱”的顏色對應表
|
colormap cool
|
代表“冷”的顏色對應表
|
colormap summer
|
代表“夏天”的顏色對應表
|
colormap gray
|
代表“灰階”的顏色對應表
|
colormap copper
|
代表“銅色”的顏色對應表
|
colormap autumn
|
代表“秋天”的顏色對應表
|
colormap winter
|
代表“冬天”的顏色對應表
|
colormap spring
|
代表“春天”的顏色對應表
|
colormap bone
|
代表“X光片”的顏色對應表
|
colormap pink
|
代表“粉紅”的顏色對應表
|
colormap flag
|
代表“旗幟”的顏色對應表
|
例如,要使您的曲面使用感覺較冷的顏色,可輸入如下:
peaks;colormap cool; colorbar
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)
除了以高度來設定顏色之外,surf 及 mesh 指令都可以接受第 4 個輸入引數來作為設定顏色的依據。例如,若要以曲面的斜率(即「梯度」或「Gradient」)來設定顏色,可進行如下:
[X, Y, Z] = peaks;surf(X, Y, Z, gradient(Z));axis tight;colormap hot
在上例中,gradient (Z) 會根據數值微分(Numerical Differentiation)來產生矩陣 Z 的梯度,surf 即利用此梯度來產生曲面的顏色。欲知 gradient 的詳細資訊,可在 MATLAB 指令視窗下輸入 help gradient。
若要以曲面的曲率來設定顏色,可進行如下:
[X, Y, Z] = peaks;surf(X, Y, Z, del2(Z));axis tight;colormap hot
在上例中,del2 (Z) 根據數值微分來產生矩陣 Z 的 discrete Laplacian,詳情可參見 help del2 傳回的線上支援。
我們可用 brighten 指令來使顏色對照表變亮或變暗,如下:
colormap coppersubplot(3, 1, 1); rgbplot(colormap);brighten(colormap, 0.5)subplot(3, 1, 2); rgbplot(colormap);brighten(colormap, -0.8)subplot(3, 1, 3); rgbplot(colormap);
其中 rgbplot 可畫出 R、G、B 三色的比重對列數的變化。
上述 MATLAB 決定顏色的方法稱為「索引顏色」(Indexed Color)法,因為曲面上每個方塊先對應至顏色對應表的索引(即某一特定列),再由此列決定真正要用的顏色。如果您的顯示器能支援 24 位元全彩,則我們可以直接定義一千六百萬(224)種顏色,而不需要再定義顏色對應表。此種方法稱為「真實顏色」(True Color)法,如下:
Z = peaks(50);C(:, :, 1) = rand(50); % C(:,:,1) 代表 R(Red,紅色)的份量C(:, :, 2) = rand(50); % C(:,:,2) 代表 G(Green,綠色)的份量C(:, :, 3) = rand(50); % C(:,:,3) 代表 B(Blue,藍色)的份量surf(Z, C);axis tight
在上圖中,曲面上每一個小方塊的顏色都是由矩陣 C 的 R、G、B 份量來決定,這就是「真實顏色」,而和前述的「索引顏色」有所不同。
在前述的例子中,每一個曲面都可以視為由一塊塊的四角小「瓷磚」所拼成,而且每一塊「瓷磚」表面的顏色是均勻一致的,其顏色值由「瓷磚」所在的曲面高度所決定。若要使「瓷磚」表面的顏色產生連續性的變化,可使用 shading 指令,例如我們可以先輸入「peaks」,再輸入「shading interp」,就可以得到下列顏色漸進變化的圖形:
peaks;colormap jet;colorbar;shading interp;
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... - 1/3*exp(-(x+1).^2 - y.^2)
由上圖可看出,經由 shading interp 的作用,曲面的顏色更加柔順平滑。有關 shading 指令的用法,可列表如下:
指令
|
說明
|
shading interp
|
使用 Bilinear Interpolation 來使「瓷磚」根據四頂點的顏色產生連續的變化
|
shading flat
|
「瓷磚」的顏色是均勻一致的。
|
shading faceted
|
「瓷磚」的顏色是均勻一致的,而且同時顯示「瓷磚」交接的「邊」。(此為預設值)
|
使用 colormap 及 shading,可產生意想不到的結果,例如:
surfl(peaks); % 曲面圖加上光源 axis tightcolormap(pink);shading interp
使用该数组设置 CData 属性,该属性用于定义顶点
颜色
。通过将
曲面
对象的 FaceColor 属性设置为 'interp' 来插入面
颜色
。使用圆点表示法查询和设置属性。创建使用 magic 函数得到的数据的三维条形图。在数组 b 中返回用于创建条形图的
曲面
对象。每个条形的高度决定了它的
颜色
。您可以通过对比条形
颜色
和
颜色
栏来估算条形的高度。根据条形高度为条形着色,以此方式来修改三维条形图。对每个
曲面
对象,从 ZData 属性取得。
添加保存和加载训练状态。
恢复培训时,只需传递名称为resume_state的选项,例如"resume_state":
"../experiments/debug_001_RRDB_PSNR_x4_DIV2K/training_state/200.state"
:triangular_flag:
使用Python日志记录,并支持PyTorch
灵活的图像超分辨率开发工具包。
现在,它提供:
面向PSNR的SR模型(例如SRCNN,SRResNet等)。
您可以尝试不同的体系结构,例如ResNet块,ResNeXt块,密集块,残余密集块,多边形块,双路径块,挤压和激发块,残余残留密度块等。
模型(它也可以训练SRGAN模型)。
增强的SRGAN具有比实际更好的自然质感的持续更好的视觉品质,并赢得了业界的第一。
有关更多详细信息,请参阅。
(如果您只想测试模型,请提供更简单的测试代码。)
它采用空间特征变换(SFT)来有效地合并其他条件/先决条件,例如图像SR的语义先验,由分割概率图表示。
有关更多详细信息,请参阅。
BibTex
@InProceedings
y(end)=NaN;
z=abs(sin(x))./(1+cos(x).^2).^1.5
patch(x,y,z,'EdgeColor','interp','linewidth',3);
以上为示例代码,正弦曲线按曲率上色,复制到
MATLAB
可直接运行。
x=linspace(-10,
Matlab
曲线的
颜色
、线型等参数设置方法
在
Matlab
绘图时,如果在同一视窗内绘制的曲线特别多的时候,通常需要用不同的
颜色
和线型将其区分开,否则在黑白色打印输出图像时,用户无法辨别不同属性的曲线。下面是的曲线
颜色
的配置模板,大家可以直接修改使用,直接引用PlotStyle这个数据结构就可以了。
1 %%
Matlab
线型
颜色
设置模板
2 clear;
3 close all;
4 %%-----------
matlab
绘制曲线的
颜色
,线型,粗细等参数设置方法--------..
满意答案南渡江ndj2013.09.03采纳率:43%等级:12已帮助:19801人你好 这是我总结的画图资料比如画一条蓝色的x号线plot(x,y,'bg')画图:线形:-实线 -. 点划线 --长虚线 :短虚线符号
颜色
符号 线形b 蓝 . 点c 青 。 圈g 绿 × ×标记k 黑 - 实线m 紫红 * 星号r 红 : 点线w 白 -. 点划线y 黄 -- 虚线上下标: ^{任意字符...
利用 colorbar 指令,可顯示
MATLAB
如何以不同顏色來代表
曲面
的高度,例如若先輸入「peaks」,再輸入「colorbar」,就可以得到下列圖形:Example 1:04-三維立體繪圖/colorbar01.mpeaks;colorbar;z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... - 10*(x/5 - x.^3 - y.^5)...
我们在画三维或高维图像时,
matlab
默认的
颜色
表为 parula,parula中没有红色,有些时候图像不是很美观,我们可以切换其他
颜色
表,这个时候就用上了函数 colormap
matlab
内置
颜色
表大致有以下这些:
我们可以根据不同需要选择合适的
颜色
表:
A=[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;
其中最常用的是第一个,也是默认的选项。那么它是怎么得来的呢?
jet ranges from blue to red, and passes through the colors cyan, yellow, and orange. It is a var
目录来源方法surf函数实例二维数据解决方案其他方案常见错误surf报错生成的图形是黑色生成
曲面
光滑参考资料
写论文,从二维变三维空间,对三维工作空间分析,希望创建漂亮的工作空间示意图。二维区域着色已经在之前博文提到过了:
Matlab
不规则区域渐变色填充及注意事项。这里主要讲三维
曲面
着色。
实现绘制
曲面
的函数有不少,典型如下
近日需要用
Matlab
绘制一些三维
曲面
图,并对其进行标注。于是这些天花了些功夫重新梳理了一遍关于
Matlab
三维
曲面
作图的一些注意事项,在此记录备案,便于以后使用查找。
任务要求:已知函数形式,绘制三维
曲面
此次以下函数为例,介绍
Matlab
三维
曲面
的绘制方式 ...
MATLAB
提供了许多在二维和三维空间内显示可视信息的工具。例如,看一条sin函数的曲线图就会比一堆数据提供更多的信息。这种用图表和图形来表示数据的技术叫做数据可视化。
MATLAB
不仅是一个强大的计算工具,并且在以引人入胜和直观方式可视地表示数据方面也很有特色。 但是很多时候,一个简单的二维或三维图形不能一次显示出想要提供的全部信息。
本章将学习
MATLAB
高级绘图的知识,将熟悉以下内容:1.掌握
MATLAB
如何处理三种不同类型的图形文件。
2.使用句柄图形制定绘图的句柄并调整特性。
3.通过
MATLAB
两种技术的任意一种创建动画。
4.调节光源参数,照相机位置和透明值。
5.对三维标量和矢量信息使用可视化方法。一.图像通过检验函数image和imagesc对图形的处理过程,可以了解
MATLAB
的高级绘图功能。因为MATL
在画图的时候,为了让图形更加清晰突出,往往需要对某一条或几条曲线围成的区域进行填冲
颜色
,以得到填充图。对于平面图形的填充,可以
matlab
的命令fill和area等实现。