RGB与Lab颜色空间互相转换

1.Lab颜色空间

同RGB颜色空间相比(见博客《光与色的故事--颜色空间浅析》),Lab是一种不常用的色彩空间。它是在1931年国际照明委员会(CIE)制定的颜色度量国际标准的基础上建立起来的。1976年,经修改后被正式命名为CIELab。它是一种设备无关的颜色系统,也是一种基于生理特征的颜色系统。这也就意味着,它是用数字化的方法来描述人的视觉感应。Lab颜色空间中的L分量用于表示像素的亮度,取值范围是[0,100],表示从纯黑到纯白;a表示从红色到绿色的范围,取值范围是[127,-128];b表示从黄色到蓝色的范围,取值范围是[127,-128]。下图所示为Lab颜色空间的图示;

需要提醒的是,Lab颜色空间比计算机显示器、打印机甚至比人类视觉的色域都要大,表示为 Lab 的位图比 RGB 或 CMYK 位图获得同样的精度要求更多的每像素数据。虽然我们在生活中使用RGB颜色空间更多一些,但也并非Lab颜色空间真的一无所有。例如,在 Adobe Photoshop图像处理软件中,TIFF格式文件中,PDF文档中,都可以见到Lab颜色空间的身影。而在计算机视觉中,尤其是颜色识别相关的算法设计中,rgb,hsv,lab颜色空间混用更是常用的方法。

两者的区别:

RGB的是由红色通道(R)、绿色通道(G)、蓝色通道(B)组成的,最亮的红色+最亮的绿色+最亮的蓝色=白色;最暗的红色+最暗的绿色+最暗的蓝色=黑色;而在最亮和最暗之间,相同明暗度的红色+相同明暗度的绿色+相同明暗度的蓝色=灰色。在RGB的任意一个通道内,白和黑表示这个颜色的明暗度。所以,有白色或者灰白色的地方,R、G、B三个通道都不可能是黑色的,因为必须要有R、G、B三个通道来构成这些颜色。
      而LAB不一样,LAB中的明度通道(L)专门负责整张图的明暗度,简单的说就是整幅图的黑白版。a通道和b通道只负责颜色的多少。a通道表示从洋红色(通道里的白色)至深绿色(通道里的黑色)的范围;b表示从焦黄色(通道里的白色)至袅蓝色(通道里的黑色)的范围;a、b通道里的50%中性灰色表示没有颜色,所以越接近灰色说明颜色越少,而且a通道和b通道的颜色没有亮度。这就说明了为什么在a、b通道中红色T恤的轮廓是那么的清晰!因为红色是洋红色+焦黄色组成的。
    总的来说:
      1、适合RGB通道抠的图大部分LAB模式能完成,反之不成立。
      2、任何单一色调背景下,用通道抠有明显颜色区别的部分,用LAB模式很快能完成
      3、LAB模式下对明度(L)通道做任何操作(如锐化、模糊等)不会影响到色相。

2.RGB转Lab颜色空间

RGB颜色空间不能直接转换为Lab颜色空间,需要借助XYZ颜色空间,把RGB颜色空间转换到XYZ颜色空间,之后再把XYZ颜色空间转换到Lab颜色空间。

RGB与XYZ颜色空间有如下关系:

仔细观察式(1),其中 X = 0.412453 * R +  0.412453 *G+ 0.412453B ;  各系数相加之和为0.950456,非常接近于1,我们知道R/G/B的取值范围为[ 0,255 ],如果系数和等于1,则X的取值范围也必然在[ 0,255 ]之间,因此我们可以考虑等比修改各系数,使其之和等于1,这样就做到了XYZ和RGB在同等范围的映射。这也就是为什么代码里X,Y,Z会分别除以0.950456、1.0、1.088754。

RGB2Lab关键代码实现:

//RGB2Lab Lab2RGB
const float param_13 = 1.0f / 3.0f;
const float param_16116 = 16.0f / 116.0f;
const float Xn = 0.950456f;
const float Yn = 1.0f;
const float Zn = 1.088754f;float gamma(float x){return x>0.04045?powf((x+0.055f)/1.055f,2.4f):(x/12.92);}; void RGB2XYZ(T_U8 R, T_U8 G, T_U8 B, float *X, float *Y, float *Z)  {  float RR = gamma(R/255.0);float GG = gamma(G/255.0);float BB = gamma(B/255.0);*X = 0.4124564f * RR + 0.3575761f * GG + 0.1804375f * BB;  *Y = 0.2126729f * RR + 0.7151522f * GG + 0.0721750f * BB;  *Z = 0.0193339f * RR + 0.1191920f * GG + 0.9503041f * BB;  }  void XYZ2Lab(float X, float Y, float Z, float *L, float *a, float *b)  {  float fX, fY, fZ;  X /= (Xn);  Y /= (Yn);  Z /= (Zn);  if (Y > 0.008856f)  fY = pow(Y, param_13);     else  fY = 7.787f * Y + param_16116;  if (X > 0.008856f)  fX = pow(X, param_13);  else  fX = 7.787f * X + param_16116;  if (Z > 0.008856)  fZ = pow(Z, param_13);  else  fZ = 7.787f * Z + param_16116;  *L = 116.0f * fY - 16.0f;*L = *L > 0.0f ? *L : 0.0f;   *a = 500.0f * (fX - fY);  *b = 200.0f * (fY - fZ);  }  int RGB2Lab(IMAGE_TYPE *bmp_img,float *lab_img)
{DWORD width,height,index;WORD  biBitCount;T_U8 *dst,*bmp,R,G,B;float X,Y,Z,L,a,b;T_U32 line_byte;T_U16 i,j;BITMAPFILEHEADER bf;BITMAPINFOHEADER bi;memset(&bf, 0, sizeof(bf));memset(&bi, 0, sizeof(bi));bmp = bmp_img;memcpy(&bf,bmp,14);memcpy(&bi,&bmp[14],40);height = bi.biHeight;width  = bi.biWidth;biBitCount = bi.biBitCount;//每一个像素由24 bits表示,即RGB分量每一个分量用8 bits表示line_byte = WIDTHBYTES(width*bi.biBitCount);dst = bmp_img+BMPHEADSIZE;for (i = 0; i <height;i++){for (j = 0;j < width;j++){index = i*line_byte+3*j;B = dst[index];G = dst[index+1];R = dst[index+2];RGB2XYZ(R,G,B,&X,&Y,&Z);XYZ2Lab(X,Y,Z,&L,&a,&b);lab_img[index] = L;lab_img[index+1] = a;lab_img[index+2] = b;}}return 0;}

3.Lab转RGB颜色空间

Lab2RGB关键代码实现:

extern const float param_13;
extern const float param_16116;
extern const float Xn;
extern const float Yn;
extern const float Zn;float gamma_XYZ2RGB(float x){return x>0.0031308?(1.055f*powf(x,(1/2.4f))-0.055):(x*12.92);};void XYZ2RGB(float X, float Y, float Z, unsigned char*R, unsigned char*G, unsigned char*B)  {       float RR , GG, BB ;RR =  3.2404542f * X - 1.5371385f * Y - 0.4985314f * Z;  GG = -0.9692660f * X + 1.8760108f * Y + 0.0415560f * Z;  BB =  0.0556434f * X - 0.2040259f * Y + 1.0572252f * Z;  RR = gamma_XYZ2RGB(RR);GG = gamma_XYZ2RGB(GG);BB = gamma_XYZ2RGB(BB);RR = CLIP255(RR*255.0+0.5);GG = CLIP255(GG*255.0+0.5);BB = CLIP255(BB*255.0+0.5);*R = (unsigned char)RR;  *G = (unsigned char)GG;  *B = (unsigned char)BB;  }  void Lab2XYZ(float L, float a, float b, float *X, float *Y, float *Z)  {  float fX, fY, fZ;  fY = (L + 16.0f) / 116.0; fX = a / 500.0f + fY;fZ = fY - b / 200.0f; if(powf(fY,3.0)>0.008856)*Y =powf(fY,3.0);else*Y = (fY-param_16116)/7.787f;if (powf(fX,3) > 0.008856)  *X = fX * fX * fX;  else  *X = (fX - param_16116) / 7.787f;  if (powf(fZ,3.0) > 0.008856)  *Z = fZ * fZ * fZ;  else  *Z = (fZ - param_16116) / 7.787f;  (*X) *= (Xn);  (*Y) *= (Yn);  (*Z) *= (Zn); }  int Lab2RGB(IMAGE_TYPE *bmp_img,float *lab_img)
{DWORD width,height,index;WORD  biBitCount;T_U8 *bmp,R,G,B,*Lab2BMP;float X,Y,Z,L,a,b;T_U32 line_byte;T_U16 i,j;BITMAPFILEHEADER bf;BITMAPINFOHEADER bi;FILE *Lab2BMP_fp = fopen("Lab2BMP.bmp","wb");if(NULL == Lab2BMP_fp){printf("Can't open Lab2BMP.bmp\n");return -1;}memset(&bf, 0, sizeof(bf));memset(&bi, 0, sizeof(bi));bmp = bmp_img;memcpy(&bf,bmp,14);memcpy(&bi,&bmp[14],40);height = bi.biHeight;width  = bi.biWidth;biBitCount = bi.biBitCount;//每一个像素由24 bits表示,即RGB分量每一个分量用8 bits表示line_byte = WIDTHBYTES(width*bi.biBitCount);fwrite(&bf,sizeof(BITMAPFILEHEADER),1,Lab2BMP_fp);fwrite(&bi,sizeof(BITMAPINFOHEADER),1,Lab2BMP_fp);Lab2BMP = (T_U8*)malloc(height*line_byte);if (Lab2BMP == NULL){printf("Can't malloc LabBMP image.\n");return 0;}memset(Lab2BMP,0,height*line_byte);for (i = 0; i <height;i++){for (j = 0;j < width;j++){index = i*line_byte+3*j;L = lab_img[index];a = lab_img[index+1];b = lab_img[index+2];Lab2XYZ(L,a,b,&X,&Y,&Z);XYZ2RGB(X,Y,Z,&R,&G,&B);Lab2BMP[index] = B;Lab2BMP[index+1] = G;Lab2BMP[index+2] = R;}}fwrite(Lab2BMP, line_byte*height, 1, Lab2BMP_fp);fclose(Lab2BMP_fp);  free(Lab2BMP);return 0;}

4.结果实例

左侧图像是原始图像,右侧图像经过RGB->XYZ->LAB->XYZ->RGB的转换结果图。

以D65光源下24色卡为例,对比其计算出来的RGB Lab值大小。

24色在D65光源下sRGB值

标准SRGB转Lab值

上述Lab转RGB值

按照上述公式,计算出来的Lab值与EasyRGB和Photoshop计算出来的值比较,与EasyRGB差值比较小。之所以有所差异,是lab计算中选取的参考白点Xn、Yn、Zn以及设备RGB转XYZ的矩阵略有差异。与Photoshop比较,主要差异在于a分量,其他两个分量已经比较接近了。

常见的参考白点在XYZ颜色空间的坐标为:
Observer 2° (CIE 1931) 10° (CIE 1964) Note
Illuminant X2 Y2 Z2 X10 Y10 Z10  
A 109.850 100.000 35.585 111.144 100.000 35.200 Incandescent/tungsten
B 99.0927 100.000 85.313 99.178; 100.000 84.3493 Old direct sunlight at noon
C 98.074 100.000 118.232 97.285 100.000 116.145 Old daylight
D50 96.422 100.000 82.521 96.720 100.000 81.427 ICC profile PCS
D55 95.682 100.000 92.149 95.799 100.000 90.926 Mid-morning daylight
D65 95.047 100.000 108.883 94.811 100.000 107.304 Daylight, sRGB, Adobe-RGB
D75 94.972 100.000 122.638 94.416 100.000 120.641 North sky daylight
E 100.000 100.000 100.000 100.000 100.000 100.000 Equal energy
F1 92.834 100.000 103.665 94.791 100.000 103.191 Daylight Fluorescent
F2 99.187 100.000 67.395 103.280 100.000 69.026 Cool fluorescent
F3 103.754 100.000 49.861 108.968 100.000 51.965 White Fluorescent
F4 109.147 100.000 38.813 114.961 100.000 40.963 Warm White Fluorescent
F5 90.872 100.000 98.723 93.369 100.000 98.636 Daylight Fluorescent
F6 97.309 100.000 60.191 102.148 100.000 62.074 Lite White Fluorescent
F7 95.044 100.000 108.755 95.792 100.000 107.687 Daylight fluorescent, D65 simulator
F8 96.413 100.000 82.333 97.115 100.000 81.135 Sylvania F40, D50 simulator
F9 100.365 100.000 67.868 102.116 100.000 67.826 Cool White Fluorescent
F10 96.174 100.000 81.712 99.001 100.000 83.134 Ultralume 50, Philips TL85
F11 100.966 100.000 64.370 103.866 100.000 65.627 Ultralume 40, Philips TL84
F12 108.046 100.000 39.228 111.428 100.000 40.353 Ultralume 30, Philips TL83

D65光源下,常见的RGB转XYZ以及XYZ转RGB矩阵如下表所示:

RGB Working Space Reference White RGB to XYZ [M] XYZ to RGB [M]-1
Adobe RGB (1998) D65
 0.5767309  0.1855540  0.18818520.2973769  0.6273491  0.07527410.0270343  0.0706872  0.9911085
 2.0413690 -0.5649464 -0.3446944
-0.9692660  1.8760108  0.04155600.0134474 -0.1183897  1.0154096
AppleRGB D65
 0.4497288  0.3162486  0.18449260.2446525  0.6720283  0.08331920.0251848  0.1411824  0.9224628
 2.9515373 -1.2894116 -0.4738445
-1.0851093  1.9908566  0.03720260.0854934 -0.2694964  1.0912975
Best RGB D50
 0.6326696  0.2045558  0.12699460.2284569  0.7373523  0.03419080.0000000  0.0095142  0.8156958
 1.7552599 -0.4836786 -0.2530000
-0.5441336  1.5068789  0.02155280.0063467 -0.0175761  1.2256959
Beta RGB D50
 0.6712537  0.1745834  0.11838290.3032726  0.6637861  0.03294130.0000000  0.0407010  0.7845090
 1.6832270 -0.4282363 -0.2360185
-0.7710229  1.7065571  0.04469000.0400013 -0.0885376  1.2723640
Bruce RGB D65
 0.4674162  0.2944512  0.18860260.2410115  0.6835475  0.07544100.0219101  0.0736128  0.9933071
 2.7454669 -1.1358136 -0.4350269
-0.9692660  1.8760108  0.04155600.0112723 -0.1139754  1.0132541
CIE RGB E
 0.4887180  0.3106803  0.20060170.1762044  0.8129847  0.01081090.0000000  0.0102048  0.9897952
 2.3706743 -0.9000405 -0.4706338
-0.5138850  1.4253036  0.08858140.0052982 -0.0146949  1.0093968
ColorMatch RGB D50
 0.5093439  0.3209071  0.13396910.2748840  0.6581315  0.06698450.0242545  0.1087821  0.6921735
 2.6422874 -1.2234270 -0.3930143
-1.1119763  2.0590183  0.01596140.0821699 -0.2807254  1.4559877
Don RGB 4 D50
 0.6457711  0.1933511  0.12509780.2783496  0.6879702  0.03368020.0037113  0.0179861  0.8035125
 1.7603902 -0.4881198 -0.2536126
-0.7126288  1.6527432  0.04167150.0078207 -0.0347411  1.2447743
ECI RGB D50
 0.6502043  0.1780774  0.13593840.3202499  0.6020711  0.07767910.0000000  0.0678390  0.7573710
 1.7827618 -0.4969847 -0.2690101
-0.9593623  1.9477962 -0.02758070.0859317 -0.1744674  1.3228273
Ekta Space PS5 D50
 0.5938914  0.2729801  0.09734850.2606286  0.7349465  0.00442490.0000000  0.0419969  0.7832131
 2.0043819 -0.7304844 -0.2450052
-0.7110285  1.6202126  0.07922270.0381263 -0.0868780  1.2725438
NTSC RGB C
 0.6068909  0.1735011  0.20034800.2989164  0.5865990  0.11448450.0000000  0.0660957  1.1162243
 1.9099961 -0.5324542 -0.2882091
-0.9846663  1.9991710 -0.02830820.0583056 -0.1183781  0.8975535
PAL/SECAM RGB D65
 0.4306190  0.3415419  0.17830910.2220379  0.7066384  0.07132360.0201853  0.1295504  0.9390944
 3.0628971 -1.3931791 -0.4757517
-0.9692660  1.8760108  0.04155600.0678775 -0.2288548  1.0693490
ProPhoto RGB D50
 0.7976749  0.1351917  0.03135340.2880402  0.7118741  0.00008570.0000000  0.0000000  0.8252100
 1.3459433 -0.2556075 -0.0511118
-0.5445989  1.5081673  0.02053510.0000000  0.0000000  1.2118128
SMPTE-C RGB D65
 0.3935891  0.3652497  0.19163130.2124132  0.7010437  0.08654320.0187423  0.1119313  0.9581563
 3.5053960 -1.7394894 -0.5439640
-1.0690722  1.9778245  0.03517220.0563200 -0.1970226  1.0502026
sRGB D65
 0.4124564  0.3575761  0.18043750.2126729  0.7151522  0.07217500.0193339  0.1191920  0.9503041
 3.2404542 -1.5371385 -0.4985314
-0.9692660  1.8760108  0.04155600.0556434 -0.2040259  1.0572252
Wide Gamut RGB D50
 0.7161046  0.1009296  0.14718580.2581874  0.7249378  0.01687480.0000000  0.0517813  0.7734287
 1.4628067 -0.1840623 -0.2743606
-0.5217933  1.4472381  0.06772270.0349342 -0.0968930  1.2884099

D50光源下常见的RGB转XYZ以及XYZ转RGB矩阵为:

RGB Working Space Reference White RGB to XYZ [M] XYZ to RGB [M]-1
Adobe RGB (1998) D50
 0.6097559  0.2052401  0.14922400.3111242  0.6256560  0.06321970.0194811  0.0608902  0.7448387
 1.9624274 -0.6105343 -0.3413404
-0.9787684  1.9161415  0.03345400.0286869 -0.1406752  1.3487655
AppleRGB D50
 0.4755678  0.3396722  0.14898000.2551812  0.6725693  0.07224960.0184697  0.1133771  0.6933632
 2.8510695 -1.3605261 -0.4708281
-1.0927680  2.0348871  0.02275980.1027403 -0.2964984  1.4510659
Bruce RGB D50
 0.4941816  0.3204834  0.14955500.2521531  0.6844869  0.06336000.0157886  0.0629304  0.7464909
 2.6502856 -1.2014485 -0.4289936
-0.9787684  1.9161415  0.03345400.0264570 -0.1361227  1.3458542
CIE RGB D50
 0.4868870  0.3062984  0.17103470.1746583  0.8247541  0.0005877
-0.0012563  0.0169832  0.8094831
 2.3638081 -0.8676030 -0.4988161
-0.5005940  1.3962369  0.10475620.0141712 -0.0306400  1.2323842
NTSC RGB D50
 0.6343706  0.1852204  0.14462900.3109496  0.5915984  0.0974520
-0.0011817  0.0555518  0.7708399
 1.8464881 -0.5521299 -0.2766458
-0.9826630  2.0044755 -0.06903960.0736477 -0.1453020  1.3018376
PAL/SECAM RGB D50
 0.4552773  0.3675500  0.14139260.2323025  0.7077956  0.05990190.0145457  0.1049154  0.7057489
 2.9603944 -1.4678519 -0.4685105
-0.9787684  1.9161415  0.03345400.0844874 -0.2545973  1.4216174
SMPTE-C RGB D50
 0.4163290  0.3931464  0.15474460.2216999  0.7032549  0.07504520.0136576  0.0913604  0.7201920
 3.3921940 -1.8264027 -0.5385522
-1.0770996  2.0213975  0.02079890.0723073 -0.2217902  1.3960932
sRGB D50
 0.4360747  0.3850649  0.14308040.2225045  0.7168786  0.06061690.0139322  0.0971045  0.7141733
 3.1338561 -1.6168667 -0.4906146
-0.9787684  1.9161415  0.03345400.0719453 -0.2289914  1.4052427

参考资料:

http://www.cnblogs.com/Imageshop/archive/2013/02/02/2889897.html

http://blog.csdn.net/grafx/article/details/59482320

http://www.easyrgb.com/en/math.php

http://www.brucelindbloom.com/

RGB与Lab颜色空间互相转换相关推荐

  1. RGB与Lab颜色空间互相转换 持续更新中

    RGB与Lab颜色空间互相转换 1.Lab颜色空间 同RGB颜色空间相比(见博客<光与色的故事–颜色空间浅析>),Lab是一种不常用的色彩空间.它是在1931年国际照明委员会(CIE)制定 ...

  2. Python实现RGB和Lab颜色空间互转

    Python实现RGB和Lab颜色空间互转 https://github.com/rubund/debian-home-assistant/blob/1a3e8f7e4b9ddec60a4380e14 ...

  3. 颜色空间系列2: RGB和CIELAB颜色空间的转换及优化算法

    颜色空间系列代码下载链接:http://files.cnblogs.com/Imageshop/ImageInfo.rar (同文章同步更新) 在几个常用的颜色空间中,LAB颜色空间是除了RGB外,最 ...

  4. RGB和YCbCr颜色空间的转换及优化算法

    RGB和YCbCr颜色空间转换和优化 转载于颜色空间系列3: RGB和YCbCr颜色空间的转换及优化算法 在常用的几种颜色空间中,YCbCr颜色空间在学术论文中出现的频率是相当高的,常用于肤色检测等等 ...

  5. 基于matlab的RGB到YCbCr颜色空间的转换

    在matlab中,图像处理工具箱会将彩色图像当做RGB图像或者索引图像来处理.除了这两种颜色空间外还有其他一些以RGB模型为基础的颜色空间,如常见的YCbCr.HSV.HSI颜色空间等.这里只讲图像从 ...

  6. Python实现RGB转Lab颜色空间,PS:和PhotoShop转换结果一样

    由于工作要求,需要把rgb颜色转成Lab颜色空间.网上一搜一大把的代码,但是和PS一对比,基本上都不对. 下面这张图是OpenCV官方文档的计算方法. 用Python实现代码如下: from math ...

  7. 从RGB到Lab色彩空间的转换

    最近一直在学习绘制RGB,HSV,Lab色彩空间的直方图,其中也涉及到互相转换的知识,这是网上看到的介绍的. ============================================= ...

  8. 【Pytorch】rgb转lab颜色空间转换

    最近有需要,自己按照opencv实现的方式,自测! 个别tensor,numpy互转参考:https://oldpan.me/archives/pytorch-tensor-image-transfo ...

  9. RGB与YCbCr颜色空间的转换

    YCbCr是YUV经过缩放和偏移的翻版,可以看做YUV的子集.主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视.与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立 ...

最新文章

  1. linux-压缩与解压缩(gz,zip,tar,jar,war)
  2. 何时会调用拷贝构造函数
  3. python下载完以后是什么样子_python下载后怎么用
  4. Linux系统开机自动加载驱动module
  5. Opencv数据符号说明
  6. guns 最新开源框架企业版下载_国内比较火的5款Java微服务开源项目
  7. 关于sql的正则表达式
  8. 手机html图片自适应屏幕大小,手机端 图片自适应屏幕尺寸
  9. esxi安装系统ndows,ESXI 安装 Windows Server 2012过程
  10. eureka服务下架、服务续期及eureka源码分析
  11. 亲身经历从软通外包到华为OD,两者有什么区别?
  12. android语音到账,支付宝到账语音包
  13. 【Autosar 存储栈Memery Stack 3.存储读写流程的要求与时序】
  14. 三七互娱秋招web前端笔试题编程题(使用原生JS实现一个英雄类Hero, 可以按照以下方式调用正确输出)
  15. 摩尔定律、安迪-比尔定律、反摩尔定律
  16. linux的内网地址映射到公网地址
  17. Android Manifest内容解析
  18. 你的电脑是不是github访问一段时间又不能访问了?提示无法访问此网站。教你原理,这次学会就不用再百度
  19. 京东网络开放之路——数据中心光互联技术的思考与实践
  20. 愚弄了上万人,AI开始文化入侵了?道翰天琼认知智能机器人平台API接口大脑为您揭秘。

热门文章

  1. day199-2019-01-05-英语流利阅读-待学习
  2. ROS-学习资料参考
  3. 【每天听见吴晓波-2016-07-04】上海房价未来五年还会翻番
  4. AUTOSAR DiagnosticLogAndTrace(DLT)模块功能概述(一)----DLT基础概念、与SWC\DEM\DET的交互、VFB Trace
  5. 原声大碟 -《仙剑奇侠传三·电视原声带》[MP3]
  6. GPT-3: 最强的人工智能?
  7. 计算机技术应用广泛以下属于科学计算方面,2016年12月计算机二级MSoffice选择题习题...
  8. latex 数学符号-- 希腊字母、上下标、分数、运算符、箭头、标注、分隔符、省略号、空白间距
  9. 杰理之外挂 FLASH 使用方法与注意点【篇】
  10. Psychtoolbox刺激呈现方式