《第4章灰度图像处理课件》由会员分享,可在线阅读,更多相关《第4章灰度图像处理课件(93页珍藏版)》请在金锄头文库上搜索。
1、4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像1 1、分量法、分量法 2 2、最大值法、最大值法3 3、平均值法、平均值法4 4、加权平均法、加权平均法4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像GetPixelGetPixel函数功能函数功能:该函数检索指定坐标点的像素的:该函数检索指定坐标点的像素的RGBRGB颜色值。颜色值。 函数原型函数原型:COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) 参数参数: hdchdc:设备环境句柄
2、。:设备环境句柄。 nXPosnXPos:指定要检查的像素点的逻辑:指定要检查的像素点的逻辑X X轴坐标。轴坐标。 nYPosnYPos:指定要检查的像素点的逻辑:指定要检查的像素点的逻辑Y Y轴坐标。轴坐标。 返回值:返回值是该象像点的返回值:返回值是该象像点的RGBRGB值。值。 声明方法:声明方法:Private Declare Function GetPixel Lib gdi32 (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long) As Long4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像SetPixelSetPixel
3、函数功能函数功能:该函数将指定坐标处的像素设为指定的颜色。:该函数将指定坐标处的像素设为指定的颜色。 函数原型函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor)COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor); 参数参数: :hdchdc:设备环境句柄。:设备环境句柄。 X X:指定要设置的点的:指定要设置的点的X X轴坐标,按逻辑单位表示坐标。轴坐标,按逻辑单位表示坐标。 Y Y:指定要设置的点的:指定要设置的点的Y Y轴坐标,按逻辑单位表示坐标。轴
4、坐标,按逻辑单位表示坐标。 crColorcrColor:指定要用来绘制该点的颜色。:指定要用来绘制该点的颜色。 返回值:如果函数执行成功,那么返回值就是函数设置像素的返回值:如果函数执行成功,那么返回值就是函数设置像素的RGBRGB颜色值。颜色值。这个值可能与这个值可能与crColorcrColor指定的颜色有所不同,之所以有时发生这种情况是因为指定的颜色有所不同,之所以有时发生这种情况是因为没有找到对指定颜色进行真正匹配造成的;如果函数失败,那么返回值是没有找到对指定颜色进行真正匹配造成的;如果函数失败,那么返回值是-1-1。 声明方法:声明方法:Private Declare Funct
5、ion SetPixelV Lib gdi32 (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, ByVal crColor As Long) As Long4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像1 1、分量法(、分量法(R R分量法)分量法) Private Sub Command2_Click() Picture1.Picture = Picture2.Picture w = Picture1.ScaleWidth h = Picture1.ScaleHeight For i = 0 To w-1 For j = 0
6、To h-1 rgb = GetPixel(Picture1.hdc, i, j) Red = rgb mod 256 获得红色值获得红色值 Green = rgb 256 mod 256 获得绿色值获得绿色值 Blue = rgb65536 获得兰色值获得兰色值 取取R分量作为灰度分量作为灰度 rgb = RGB(Red,Red,Red) SetPixelV Picture2.hdc, i, j, rgb Next j Next iPicture2.Picture = Picture2.ImageEnd Sub4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像2 2、最大值法、最大值法Pr
7、ivate Sub Command3_Click() w = Picture1.ScaleWidth h = Picture1.ScaleHeight For i = 0 To w - 1 For j = 0 To h - 1 rgb1 = GetPixel(Picture1.hdc, i, j) Red = rgb1 Mod 256 获得红色值获得红色值 Green = rgb1 256 Mod 256 获得绿色值获得绿色值 Blue = rgb1 65536 获得兰色值获得兰色值 取取R、G、B分量最大值作为灰度分量最大值作为灰度 If Red Green And Red Blue The
8、n Col = Red If Green Red And Green Blue Then Col = Green If Blue Red And Blue Green Then Col = Blue rgb1 = RGB(Col, Col, Col) SetPixelV Picture2.hdc, i, j, rgb1 Next j Next iPicture2.Picture = Picture2.ImageEnd Sub4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像3 3、平均值法、平均值法Private Sub Command4_Click() Picture1.Picture =
9、 Picture2.Picture w = Picture1.ScaleWidth h = Picture1.ScaleHeight For i = 0 To w - 1 For j = 0 To h - 1 rgb1 = GetPixel(Picture1.hdc, i, j) Red = rgb1 Mod 256 获得红色值获得红色值 Green = rgb1 256 Mod 256 获得绿色值获得绿色值 Blue = rgb1 65536 获得兰色值获得兰色值 取取R、G、B三分量平均值作为灰度三分量平均值作为灰度 col = (Red + Green + Blue) / 3 rgb1
10、= RGB(col, col, col) SetPixelV Picture2.hdc, i, j, rgb1 Next j Next iPicture2.Picture = Picture2.ImageEnd Sub4.1 4.1 彩色图像转灰度图像彩色图像转灰度图像4 4、加权平均法、加权平均法Private Sub Command5_Click() Picture1.Picture = Picture2.Picture w = Picture1.ScaleWidth h = Picture1.ScaleHeightFor i = 0 To w-1 For j = 0 To h-1 rgb
11、1 = GetPixel(Picture1.hdc, i, j) Blue = rgb1 mod 256 获得兰色值获得兰色值 Red =rgb1256 mod 256 获得红色值获得红色值 Green = rgb1 65536 获得绿色值获得绿色值 将三原色取其权值转换为灰度将三原色取其权值转换为灰度 Y = (9798 * Red + 19235 *Green + 3735 * Blue) 32768 将灰度转换为将灰度转换为RGB rgb1 = RGB(Y, Y, Y) SetPixelV picture2.hdc, i, j, rgb1 Next j Next iPicture2.Pi
12、cture = Picture2.ImageEnd Sub4.2 4.2 直直 方方 图图 4.2.1 4.2.1 直方图的基本概念直方图的基本概念 灰度直方图表示图像中具有某种灰度级的像素的个数。灰度直方图表示图像中具有某种灰度级的像素的个数。66463132664166654366466112234665432115243546526144.2.2 4.2.2 直方图的性质直方图的性质 (3 3) 图像各子区的直方图之和就等于该图像全图的直方图。图像各子区的直方图之和就等于该图像全图的直方图。 (1 1) 只含图像各灰度值像素出现的概率,而无位置信息。只含图像各灰度值像素出现的概率,而无位
13、置信息。(2 2) 图像与直方图之间是多对一的映射关系。图像与直方图之间是多对一的映射关系。 在离散形式下在离散形式下, ,灰度直方图的计算如下:灰度直方图的计算如下:在坐标中做出在坐标中做出r rk k与与p pr r( (r rk k) )的关系图形,即为该图像的直方图。的关系图形,即为该图像的直方图。r rk k代表离散灰代表离散灰度级度级p pr r( (r rk k) )代表概代表概率密度函数率密度函数, ,表示原始图表示原始图像的灰度分像的灰度分布布n nk k为图像中出现为图像中出现r rk k级灰度的像素数级灰度的像素数n n是图像像素总数是图像像素总数4.2.3 4.2.3
14、直方图的计算与简单绘制直方图的计算与简单绘制 LineLine方法:方法:object.Line (x1, y1) - (x2, y2),RGB (Red, Green, Blue)(x1,y1)是直线的起点坐标,若省略是直线的起点坐标,若省略(x1,y1),则起点为当前坐标位置则起点为当前坐标位置(CurrentX,CurrentY)。(x2,y2)是直线的终点坐标。是直线的终点坐标。直方图程序设计直方图程序设计scalescale方法:方法:object.scale (x1, y1) - (x2, y2)用于设定坐标系统用于设定坐标系统。(x1,y1)是坐标系统的左上角坐标,是坐标系统的左
15、上角坐标,(x2,y2)是坐是坐标系统的右下角坐标。标系统的右下角坐标。设计一图像直方图程序设计一图像直方图程序 一一幅幅给给定定图图像像的的灰灰度度级级分分布布在在00r r11范范围围内内(灰灰度度级级进进行了归一)。可以对行了归一)。可以对0, 10, 1内的任一内的任一r r值进行变换值进行变换 s s= =T T( (r r) ) 变换函数变换函数T T( (r r) )应满足下列条件:应满足下列条件: (1 1) 在在00r r11区间内,区间内,T T( (r r) )值单调增加;值单调增加; (2 2) 对于对于00r r11, 有有 00s s11。 保证了图像的灰度级保证了
16、图像的灰度级从白到黑的次序不变从白到黑的次序不变保证了映射变换后保证了映射变换后的像素灰度值在容的像素灰度值在容许的范围内许的范围内4.2.4 4.2.4 直方图的映射变换直方图的映射变换 直方图均衡化直方图均衡化处理是以处理是以累积分布函数变换法累积分布函数变换法为基础的为基础的直方图修正法直方图修正法。变换函数为。变换函数为 式中:式中:是积分变量,而是积分变量,而 就是就是r r的累积分布函数。的累积分布函数。 4.2.5 4.2.5 直方图均衡直方图均衡当灰度级是离散值时:当灰度级是离散值时:其反变换式为其反变换式为 6646313266416665436646611223466543
17、214.2.5 4.2.5 直方图均衡直方图均衡rknknk/nr5=1r1=1/5r2=2/5r3=3/5r4=4/5r0=014/364/365/366/362/365/36n5=14n1=4n2=5n3=6n4=2n0=51 2 3 4 5 64.2.5 4.2.5 直方图均衡直方图均衡1 2 3 4 5 6Matlab程序:程序:clear all; close all;I=imread(pout.tif); subplot(2,2,1),imshow(I); title(原图像原图像);subplot(2,2,2),imhist(I); title(原图像的直方图原图像的直方图);
18、J=histeq(I); %直方图均衡化直方图均衡化subplot(2,2,3),imshow(J); title(直方图均衡化后的图像直方图均衡化后的图像); subplot(2,2,4),imhist(J); title(均衡化后的图像的直方图均衡化后的图像的直方图)4.2.5 4.2.5 直方图均衡直方图均衡4.3 4.3 灰灰 度度 变变 换换 4.3.1 灰度线性变换 原图像原图像f(x, y)的灰度范围为的灰度范围为a, b,希望变换后图像,希望变换后图像g(x, y)的灰度范围扩至的灰度范围扩至c, d,则线性变换可表示为,则线性变换可表示为: 2552550输入灰度输出灰度实例
19、:逆反处理实例:逆反处理For j = 0 To h- 1 For i = 0 To w - 1 g(i,j) = 255 - f(i, j) Next iNext j 突出感兴趣的灰度区间。突出感兴趣的灰度区间。 常用的三段线性变换法其数学表达式如下:常用的三段线性变换法其数学表达式如下: 4.3.2 4.3.2 分段线性变换分段线性变换 利用利用MatlabMatlab进行图像灰度变换进行图像灰度变换设计程序设计程序figure(1);i=imread(car.bmp);i=im2double(i);imshow(i);title(原图);figure(2);r=0:0.001:1;s=r
20、0.35.*r*0.3+r=0.35.*(0.105+2.6333*(r-0.35)+r0.65.*(1+0.3*(r-1);plot(r,s);title(变换公式);figure(3);T1=i0.35.*i*0.3+i=0.35.*(0.105+2.6333*(i-0.35)+i0.65.*(1+0.3*(i-1);imshow(T1);title(变换后图像);imwrite(T1,car_T1.bmp, bmp);im2double函数:如果输入是函数:如果输入是 uint8,unit16, 或者是二值的或者是二值的logical类型,则类型,则函数函数im2double 将其值归一
21、化到将其值归一化到01之之间。如果输入本身就是间。如果输入本身就是double类型,输类型,输出还是出还是double类型,并不进行归一化。类型,并不进行归一化。结果演示结果演示4.3.3 4.3.3 非线性变换非线性变换 常见的几种非线性变换函数常见的几种非线性变换函数 2552550输入灰度输出灰度减小灰度减小灰度G(x,y)=f(x,y)2 0f(x,y)1减小灰度减小灰度I=imread(car.bmp);I=im2double(I);imshow(I)title(原图像原图像)figure;plot(0:0.01:1,(0:0.01:1).2)title(平方灰度变换函数平方灰度变换
22、函数)figure;J=I.2;%平方变换平方变换imshow(J)title(灰度减小图像灰度减小图像)增加灰度增加灰度2552550输入灰度输出灰度G(x,y)=sqr(f(x,y) 0f(x,y)=50); % 可通过修改阈值实现不同锐化效果可通过修改阈值实现不同锐化效果 J2(K)=G(K); figure,imshow(J2,map); MatlabMatlab程序程序运行结果运行结果不同阈值下的锐化效果图(不同阈值下的锐化效果图(T=7、50) 第三种:第三种: 式中:式中:T T是根据需要指定的一个灰度级,它将明显边缘用一是根据需要指定的一个灰度级,它将明显边缘用一固定的灰度级固
23、定的灰度级L LG G来实现。来实现。 I,map=imread(lena.bmp); I,map=imread(lena.bmp); imshow(I,map); imshow(I,map); I=double(I); I=double(I); Gx,Gy=gradient(I); % Gx,Gy=gradient(I); % 计算梯度计算梯度 G=sqrt(Gx.*Gx+Gy.*Gy); % G=sqrt(Gx.*Gx+Gy.*Gy); % 注意是矩阵点乘注意是矩阵点乘 J3=I; % J3=I; % 第三种图像增强第三种图像增强 K=find(G=50); K=find(G=50); J
24、3(K)=255; J3(K)=255; figure,imshow(J3,map); figure,imshow(J3,map); MatlabMatlab程序程序运行结果运行结果不同阈值下的锐化效果图(不同阈值下的锐化效果图(T=7、50) 第四种:第四种: 此法将背景用一个固定灰度级此法将背景用一个固定灰度级L LG G来实现,便于研究边缘灰来实现,便于研究边缘灰度的变化。度的变化。 I,map=imread(lena.bmp); I,map=imread(lena.bmp); imshow(I,map); imshow(I,map); I=double(I); I=double(I);
25、 Gx,Gy=gradient(I); % Gx,Gy=gradient(I); % 计算梯度计算梯度 G=sqrt(Gx.*Gx+Gy.*Gy); % G=sqrt(Gx.*Gx+Gy.*Gy); % 注意是矩阵点乘注意是矩阵点乘 J4=I; % J4=I; % 第四种图像增强第四种图像增强 K=find(G50); K=find(G50); J4(K)=255; J4(K)=255; figure,imshow(J4,map); figure,imshow(J4,map); MatlabMatlab程序程序运行结果运行结果不同阈值下的锐化效果图(不同阈值下的锐化效果图(T=7、50) 第五
26、种第五种: : 此法将背景和边缘用二值图像表示,此法将背景和边缘用二值图像表示, 便于研究边缘所在位置。便于研究边缘所在位置。 MatlabMatlab程序程序I,map=imread(lena.bmp); I,map=imread(lena.bmp); imshow(I,map); imshow(I,map); I=double(I); I=double(I); Gx,Gy=gradient(I); % Gx,Gy=gradient(I); % 计算梯度计算梯度 G=sqrt(Gx.*Gx+Gy.*Gy); % G=sqrt(Gx.*Gx+Gy.*Gy); % 注意是矩阵点乘注意是矩阵点乘
27、J5=I; % J5=I; % 第五种图像增强第五种图像增强 K=find(G=50); K=find(G=50); Q=find(G=50); J5(Q)=255; J5(Q)=255; figure,imshow(J5,map);figure,imshow(J5,map);运行结果运行结果不同阈值下的锐化效果图(不同阈值下的锐化效果图(T=7、50) 2. Sobel2. Sobel算子算子 -1 0 1-2 0 2-1 0 1 -1 -2 -1 0 0 0 1 2 1SxSy可用可用g=|Sx|+ |Sy|来代替来代替 Sobel Sobel算子不像普通梯度算子那样用两个像素的差值,算子
28、不像普通梯度算子那样用两个像素的差值, 这就导致了以下两个优点:这就导致了以下两个优点: (1 1) 由于引入了由于引入了平均因素平均因素, 因而对图像中的因而对图像中的随机噪随机噪声声有一定的平滑作用。有一定的平滑作用。 (2 2) 由于它是相隔两行或两列之差分,由于它是相隔两行或两列之差分, 故边缘两侧故边缘两侧元素得到了增强,边缘显得粗而亮。元素得到了增强,边缘显得粗而亮。 2. Sobel2. Sobel算子算子 MatlabMatlab程序程序 I=imread(lena.bmp); subplot(1,2,1),imshow(I); title(原灰度图原灰度图); I=doubl
29、e(I); h=fspecial(sobel); J1=filter2(h,I); J=I-J1; subplot(1,2,2),imshow(J); title(sobel算子边缘锐化后算子边缘锐化后) 如果是彩色图像,添加一条灰度变换函数如果是彩色图像,添加一条灰度变换函数 I=imread(花朵花朵.jpg); I=rgb2gray(I); 运行结果运行结果4.5.2 4.5.2 拉普拉斯运算拉普拉斯运算 拉普拉斯算子为拉普拉斯算子为 锐化后的图像锐化后的图像g为为 式式中中:f、g分分别别为为锐锐化化前前后后的的图图像像,k为为与与扩扩散散效效应应有有关关的的系系数数。k的的选选择择要
30、要合合理理,太太大大会会使使图图像像中中的的轮轮廓廓边边缘缘产产生生过过冲冲;k太太小,锐化不明显。小,锐化不明显。 4.5.2 4.5.2 拉普拉斯运算拉普拉斯运算当当k k=1=1时,拉普拉斯锐化后的图像为时,拉普拉斯锐化后的图像为 4.5.2 4.5.2 拉普拉斯运算拉普拉斯运算I=imread(lena.bmp); subplot(1,2,1),imshow(I); title(原灰度图原灰度图); I=double(I); h=fspecial(log); %拉普拉斯算子拉普拉斯算子 J1=filter2(h,I); J=I-J1; subplot(1,2,2),imshow(J);
31、 title(拉普拉斯算子边缘锐化后拉普拉斯算子边缘锐化后) MatlabMatlab程序程序 运行结果运行结果4.6 4.6 图图 像像 分分 割割 4.6.1 4.6.1 概述概述 图像分割是将图像划分成若干个互不相交的小区域过程,图像分割是将图像划分成若干个互不相交的小区域过程, 小区域是某种意义下具有共同属性的像素的连通集合。小区域是某种意义下具有共同属性的像素的连通集合。 连通是指集合中任意两个点之间都存在着完全属于该集连通是指集合中任意两个点之间都存在着完全属于该集合的连通路径。合的连通路径。4.6.2 4.6.2 灰度阈值法分割灰度阈值法分割 把图像灰度分成不同的等级,然后用设置
32、灰度阈值的方把图像灰度分成不同的等级,然后用设置灰度阈值的方法确定有意义的区域或分割物体的边界。法确定有意义的区域或分割物体的边界。 常常用用的的阈阈值值化化处处理理就就是是图图像像的的二二值值化化处处理理,选选择择一一阈阈值值,将图像转换为黑白二值图像。将图像转换为黑白二值图像。 图像阈值化处理的变换函数表达式为图像阈值化处理的变换函数表达式为 阈值变换曲线阈值变换曲线 4.6.2 4.6.2 灰度阈值法分割灰度阈值法分割 阈阈值值的的选选取取非非常常重重要要。阈阈值值过过大大,会会提提取取多多余余的的部部分分; 而阈值过小,又会丢失所需的部分。而阈值过小,又会丢失所需的部分。 (a)(b)
33、(c)(d)4.6.2 4.6.2 灰度阈值法分割灰度阈值法分割clc;clear;G = imread(lena.bmp); %读入图像读入图像figure(1);imshow(G); %显示源图像显示源图像g = uint8(G);h = imhist(g,256) %灰度直方图灰度直方图n = numel(g); %计算像素值计算像素值 p = h/n; %计算阈值计算阈值th = 0;for i=1:256 th = th+p(i)*(i-1);endth %显示阈值显示阈值figure(2);imshow(im2bw(g,th/255); %显示处理后的图像显示处理后的图像*4.6.
34、3 *4.6.3 区域生长区域生长 把一幅图像划分成满足某种判据的区域。把一幅图像划分成满足某种判据的区域。 假定区域的数目以及在每个区域中单个点的位置已知,假定区域的数目以及在每个区域中单个点的位置已知, 则从一个已知点开始,则从一个已知点开始, 加上与已知点相似的邻近点形成加上与已知点相似的邻近点形成 一个区域。一个区域。 相似性准则:灰度级、相似性准则:灰度级、 彩色、彩色、 组织、组织、 梯度或其他特性。梯度或其他特性。如相似性准则如相似性准则: :邻近点的灰度级与物体的平均灰度级的差小于邻近点的灰度级与物体的平均灰度级的差小于2 288773132654133354328225179
35、8445685521(9+8+8+8)/4=8.25*4.6.3 *4.6.3 区域生长区域生长887731326541233543282251798445685521(9+8+8+8+7)/5=8 7* 4.6.3 4.6.3 区域生长区域生长(4+3+5+5+4)/5=21/5=4.2(21+4+3+5+3)/9=36/9=4(36+4+5+3+6)/13= 48/12=4(48+5)/13=53/13=4.1(53+5+6)/15=64/15=4.3887731326412335432822517984456855215 9 8 7 8 8 4 4 5 3 5 4 5 3 3 6 5 5
36、 3 4 5* 4.6.3 4.6.3 区域生长区域生长区域生长程序区域生长程序* 4.6.4 4.6.4 区域聚合区域聚合 区域聚合可直接用于图像分割,它要求聚合中的各个点区域聚合可直接用于图像分割,它要求聚合中的各个点必须在平面上相邻接而且特性相似。必须在平面上相邻接而且特性相似。布莱斯方法:布莱斯方法:52145244552145244554444444554444444444255555522555555444555555545512112522* 4.6.4 4.6.4 区域聚合区域聚合* 4.7 4.7 图图 像像 匹匹 配配 模板匹配是用一个较小的图像(模板)与源图像进行模板匹配
37、是用一个较小的图像(模板)与源图像进行比较,以确定在源图像中是否存在与该模板相同或相似的比较,以确定在源图像中是否存在与该模板相同或相似的区域,区域, 若该区域存在,还可确定其位置并提取该区域。若该区域存在,还可确定其位置并提取该区域。 模板匹配常用的一种测度为模板与原图像对应区域模板匹配常用的一种测度为模板与原图像对应区域的误差平方和。设的误差平方和。设f f( (x,yx,y) )为为M MN N的原图像,的原图像, t t( (j,kj,k) )为为J JK K( (J JM M,K KN N) )的模板图像,则误差平方和测度定义为的模板图像,则误差平方和测度定义为 *模板匹配模板匹配
38、DS(x,y)原图像中与模板原图像中与模板对应区域的能量对应区域的能量 DST(x,y)模板的能量模板的能量 DT(x,y)模板与原图像对应模板与原图像对应区域的互相关区域的互相关 *模板匹配模板匹配可用归一化互相关作为误差平方和测度,可用归一化互相关作为误差平方和测度, 其定义为其定义为 当当x,yx,y变变化化时时, ,t(j,k)t(j,k)在在原原图图像像区区域域移移动动并并得得出出所所有有R(x,y)R(x,y)值值,R R(x,y)x,y)的最大值便指出了与的最大值便指出了与t(j,k)t(j,k)匹配的最佳位置。匹配的最佳位置。 *模板匹配模板匹配 *模板匹配模板匹配相关系数:相
39、关系数:0.93670.9367 x: 0x: 0 y: 0y: 0 *模板匹配模板匹配相关系数:相关系数:0.94100.9410 x: 50x: 50 y: 0y: 0 *模板匹配模板匹配相关系数:相关系数:0.93090.9309 x: 100x: 100 y: 0y: 0 *模板匹配模板匹配相关系数:相关系数:0.92010.9201 x: 121x: 121 y: 0y: 0 *模板匹配模板匹配相关系数:相关系数:0.87200.8720 x: 63x: 63 y: 85y: 85 *模板匹配模板匹配相关系数:相关系数:0.99590.9959 x: 20x: 20 y: 145y: 145 *模板匹配模板匹配相关系数:相关系数:1 1 x: 21x: 21 y: 145y: 145