精华内容
下载资源
问答
  • Matlab 绘制相关系数像素

    千次阅读 2020-04-25 11:36:39
    %变量 para_all=[input_train_2017,input_train_2018,input_train_2019... ;output_train_2017,...%求相关系数矩阵 corr1=corrcoef(para_all'); %相关系数矩阵是对称的,令下三角矩阵保持不变,上三角置为0 corr...

    1.代码 

    %变量
    para_all=[input_train_2017,input_train_2018,input_train_2019...
       ;output_train_2017,output_train_2018,output_train_2019 ];
    %求相关系数矩阵
    corr1=corrcoef(para_all');
    %相关系数矩阵是对称的,令下三角矩阵保持不变,上三角置为0
    corr2=tril(corr1)
    %令上三角置为NaN
    corr2(corr2==0)=NaN;
    
    img=imagesc(corr3); 
    %NaN默认显示为数值最小的颜色,这里让它显示为白色
    set(img,'alphadata',~isnan(corr3));
    
    colormap(jet)
    c=colorbar;
    caxis([-1,1])
    set(c,'YTick',(-1:0.4:1)); 
    
    xlabel('Variables');
    ylabel('Variables');
    %x轴刻度标签
    set(gca,'XTick',(1:9),'xticklabel',[string('Year'),string('Doy'),string('Hour'),...
    string('P'),string('T'),string('RH'),string('ZTD'),string('HTG'),string('Rain')],'FontSize',10); 
    %Y轴刻度标签
    set(gca,'YTick',(1:9),'yticklabel',[string('Year'),string('Doy'),string('Hour'),...
    string('P'),string('T'),string('RH'),string('ZTD'),string('HTG'),string('Rain')],'FontSize',10); 
    %图片大小
    set(gcf,'unit','centimeters','position',[6,4,12,9])
    %保存为分辨率300的tiff图片
    sfname='corr';
    print(gcf,sfname,'-r300','-dtiff');

    2.结果

     

     

    展开全文
  • nc 归一化相关系数 图像对比 图像相似 matlab
  • 超适合新手,下载后只需改一下读取图像名称即可运行,不管是普通图像或是遥感影像(注:多光谱影像请将各波段分别导出单独读取),都能无压力运行,省时省心。
  • matlab计算img图像的扭曲度和相关系数:两幅图像的信息量
  • Matlab计算遥感图像熵,清晰度和相关系数的代码,对于各个波段均可使用
  • 求两幅图像间的相关系数matlab的M文件---CorrelationCoefficient.m---;很简单的东东,但可以为你省些时间。共享改变未来!
  • matlab中的相关系数

    2010-03-26 16:50:48
    matlab中的源代码,可以计算两幅图像的相关系数
  • % 本函数实现了皮尔逊相关系数的计算操作 % % 输入: % X:输入的数值序列 % Y:输入的数值序列 % % 输出: % coeff:两个输入数值序列X,Y的相关系数 % if length(X) ~= length(Y) e...

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    根据公式实现功能

         function coeff = myPearson(X , Y)  
        % 本函数实现了皮尔逊相关系数的计算操作  
        %  
        % 输入:  
        %   X:输入的数值序列  
        %   Y:输入的数值序列  
        %  
        % 输出:  
        %   coeff:两个输入数值序列X,Y的相关系数  
        %  
          
          
        if length(X) ~= length(Y)  
            error('两个数值数列的维数不相等');  
            return;  
        end  
          
        fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);  
        fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));  
        coeff = fenzi / fenmu;  
          
        end %函数myPearson结束  
    

    根据函数计算系数
    再利用python的seaborn画出热力图
    在这里插入图片描述
    这里的数字为pearson相关系数

    参考链接:https://blog.csdn.net/aabbcc456aa/article/details/20950987

    展开全文
  • 相关系数matlab代码

    千次阅读 2018-12-30 11:28:47
    %matlab代码 function CC=cc(T1,T2) %T1,T2是图片 T1=T1(:); T2=T2(:); T1=double(T1); T2=double(T2); A=cov(T1,T2);...b=sqrt(var(T1)*var(T2)...这是测试用 这是测试例程 %matlab代码 T1=imread('1.bmp'); T2=255...
    %matlab代码
    function CC=cc(T1,T2)	%T1,T2是图片
    T1=T1(:);
    T2=T2(:);
    T1=double(T1);
    T2=double(T2);
    A=cov(T1,T2);
    b=sqrt(var(T1)*var(T2));
    CC=A(1,2)/b;
    end
    

    这是测试用图
    测试用图
    这是测试例程

    %matlab代码
    T1=imread('1.bmp');
    T2=255-T1;
    CC=cc(T1,T2);
    disp(CC);
    

    这是结果
    运行结果

    展开全文
  • 相关系数函数代码函数调用 1.均值 求出图像矩阵所有数值的均值。 注意点: ①图像矩阵的每个值都是uint8类型的,uint8的范围是0-255,在进行求和之前需要把图像矩阵转换成double类型,如果不转换,继续对uint8类型...

    1.均值

    求出图像矩阵所有数值的均值。

    注意点:
    ①图像矩阵的每个值都是uint8类型的,uint8的范围是0-255,在进行求和之前需要把图像矩阵转换成double类型,如果不转换,继续对uint8类型进行运算会产生溢出;
    ②将矩阵变为1×n或者n×1形式,求和时可以采用单层循环,加快计算速度。

    函数代码

    function [result]=junzhi(a)
    %a为图像读入的矩阵,result返回的是这些数求得的均值
    	a=double(a);%影像矩阵的类型默认是uint8 (0~255) 如果不转换为double,在求和时会溢出
    	a=a(:);%将影像变为n行一列,采用单层循环就可以计算,加快计算速度
    	sum=0;%用于求和
    	for i=1:size(a,1)
        	sum=sum+a(i);%求出矩阵中所有数之和
    	end
    	result=sum/size(a,1);%求出均值
    end
    

    函数调用

    我选择处理的图像为
    在这里插入图片描述

    先读入这张图像,然后调用函数并用一个新变量接收返回值

    a=imread('原图像.jpg');
    b=junzhi(a);
    

    最终结果
    MATLAB求图像均值结果

    2.中值

    我这里求的中值是将矩阵的最大值和最小值求平均得到的

    函数代码

    function [ midR,midG,midB ] = zhongzhi( a )
    %a为影像数据(包含3个波段)
    	a=double(a);
    	d1=a(:,:,1);
    	d2=a(:,:,1);
    	d3=a(:,:,1);
    	d1=d1(:);
    	d2=d2(:);
    	d3=d3(:);
    	max1=d1(1);
    	max2=d2(1);
    	max3=d3(1);
    for i=1:size(d1,1)
        if (d1(i)>=max1)
            max1=d1(i);
        end
    end
    for i=1:size(d2,1)
        if (d2(i)>=max2)
            max2=d2(i);
        end
    end
    for i=1:size(d3,1)
        if (d3(i)>=max3)
            max3=d3(i);
        end
    end
    min1=d1(1);
    min2=d2(1);
    min3=d3(1);
    for i=1:size(d1,1)
        if (d1(i)<=min1)
            min1=d1(i);
        end
    end
    for i=1:size(d2,1)
        if (d2(i)<=min2)
            min2=d2(i);
        end
    end
    for i=1:size(d3,1)
        if (d3(i)<=min3)
            min3=d3(i);
        end
    end
    	midR=(max1+min1)/2;
    	midG=(max2+min2)/2;
    	midB=(max3+min3)/2;
    end
    

    函数调用

    直接在命令行中调用

    a=imread('原图像.jpg');
    c=zhongzhi(a);
    

    最终结果
    在这里插入图片描述

    3.众数

    由于我们处理的是图像,所有要处理的矩阵的每一个值都在0~255中间,所以求众数时可以先对所有的值进行统计,然后找到数量最大的值,这个数就是众数。

    注意点:
    ①众数可能有多个,在有多个众数的情况下不能只返回一个;
    ②我们读入的数组矩阵的数值范围是0-255。

    函数代码

    function [result]=zhongshu2(a)
    %a为图像读入的矩阵,result返回的是众数的数组
    	a=a(:);
    	h=zeros(1,256);%定义一个数组用来几率每个数值出现的次数
    for i=1:size(a,1)
        h(a(i)+1)=h(a(i)+1)+1;%由于矩阵的值时0-255,所以加一以后才是索引值
    end
    	ma=h(1);
    for i=1:256
    %求出现的最大次数
        if(h(i)>ma)
            ma=h(i);
        end
    end
    	j=1;
    for i=1:256
    %得到所有出现次数最多的数
        if(ma==h(i))
           num(j)=i;
           j=j+1;
        end
    end
    	result=num;
    end
        
    

    函数调用

    直接在命令行中调用即可

    a=imread('原图像.jpg');
    b=zhongshu2(a);
    

    最终结果
    在这里插入图片描述

    4.方差

    求方差时调用之前的求均值函数,按照求方差的公式计算即可
    在这里插入图片描述

    函数代码

    function [ result ] = fangcha( a )
    %a为输入的一个数组或者一行多列的矩阵
    	a=a(:);%把行向量变成列向量
    	a=double(a);
    	length=size(a,1);%得到a的维数
    	sum=0;
    	junzhi=junzhi(a);//利用之前写的函数求均值
    	for i=1:length
       		sum=sum+(a(i)-junzhi)*(a(i)-junzhi);
    	end
    	result=sum/length;
    end
    

    函数调用

    a=imread('原图像.jpg');
    fangcha(a);
    

    最终结果
    在这里插入图片描述

    5.协方差

    协方差计算公式:

    协方差体现的是两张不同图像之间的关系,计算起来依旧不难,调用之前的函数,按公式计算即可
    在这里插入图片描述

    函数代码

    function [ result ] = xiefangcha(a,b)
    %a,b分布为两张不同的图像
    	a=a(:);
    	b=b(:);
    	a=double(a);
    	b=double(b);
    	mi1=junzhi(a);
    	mi2=junzhi(b);
    	sum=0;
    for i=1:size(a,1)
        sum=sum+(a(i)-mi1)*(b(i)-mi2);
    end
    	result=sum/size(a,1);
    end
    
    

    函数调用

    由于计算协方差需要两张图像,所以这里我是用了第二张图像和之前的图片一起进行调用
    匹配图像
    在命令行中进行调用

     a=imread('原图像.jpg');
     b=imread('匹配图像.jpg');
     xiefangcha(a,b);
    

    最终结果
    在这里插入图片描述

    6.相关系数

    同样,调用之前的函数,按公式计算即可
    相关系数算公式:
    在这里插入图片描述

    函数代码

    function [ result ] = xianggaunxishu(a,b )
    %a,b分布为两张不同的图像
    	a=a(:);
    	b=b(:);
    	xie=xiefangcha(a,b);
    	fangcha1=fangcha(a);
    	fangcha2=fangcha(b);
    	result=xie/(sqrt(fangcha1)*sqrt(fangcha2));
    end
    

    函数调用

    a=imread('原图像.jpg');
    b=imread('匹配图像.jpg');
    xianggaunxishu(a,b);
    

    最终结果
    在这里插入图片描述

    展开全文
  • 相关系数R-判定系数R方的matlab实现

    千次阅读 2019-12-25 11:55:16
    相关系数-判定系数 相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母 r 表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔逊相关系数。 相关...
  • 求取图像的相关系数---matlab ---M文件

    热门讨论 2009-06-19 11:17:50
    有关于求取图像相关系数matlab M 文件;虽然很简单,但可以为你省去那么一点时间。 共享改变未来!
  • 变差=max-min 2.2 直方 直方的简单应用: 判断对比度 灰度级越大,越亮 2.3 多波段统计特征 协方差和相关系数 二、源代码 function varargout = ImgChangeDetect(varargin) % IMGCHANGEDETECT MATLAB code for ...
  • 目录Pearson相关系数定义Matlab中的相关函数corrcoef和corr计算两个变量Pearson相关系数随时间变化的例子计算两个变量Pearson相关系数随时间变化的例子如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...
  • 演示文件中的小示例(大小为 3x4x1095)在我的笔记本电脑上在 0.004133 秒内返回一个 3x4 的相关系数图。 在使用更大的 26x360x12000 数据集进行测试时,我的机器需要将近一分钟才能返回 26x360 地图。 如果您对...
  • 变差=max-min 2.2 直方 直方的简单应用: 判断对比度 灰度级越大,越亮 2.3 多波段统计特征 协方差和相关系数 二、源代码 function varargout = ImgChangeDetect(varargin) % IMGCHANGEDETECT MATLAB code for ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

matlab相关系数图

matlab 订阅