image - 查找图像波段之间的方差和协方差值
问题描述
我想在不使用现成命令的情况下进行编码。我做了一些事情,但结果太小了。发生错误时我没有计算其他波段。如果您能提供帮助,我将不胜感激。
我的 V1 (variance-1) 值出现在 1,2820183e-05,但使用 var() 函数 91.143653869628900 出现了。
format long g
img = imread('Landsat8.tif');
blue = round((im2single(img(:, :, 1))+1)*128);
grn = round((im2single(img(:, :, 2))+1)*128);
red = round((im2single(img(:, :, 3))+1)*128);
blue_r = reshape(blue,[2000*2000,1]);
grn_r = reshape(grn,[2000*2000,1]);
red_r = reshape(red,[2000*2000,1]);
%% Mean
mean1 = sum(blue_r)/(2000*2000);
mean2 = sum(grn_r)/(2000*2000);
mean3 = sum(red_r)/(2000*2000);
%% Variance
sum1 = 0;
for i= 1 : length(2000*2000)
sum1 = sum1 + (blue_r(i) - mean1).^2;
end
V1 = sum1 ./ (length(blue_r));
sum2 = 0;
for i= 1 : length(2000*2000)
sum2 = sum2 + (grn_r(i) - mean2).^2;
end
V2 = sum2 / (length(grn_r));
%% covariance
sum12 = 0;
for i= 1 : length(2000*2000)
sum12 = sum12 + (blue_r(i) - mean1) * (grn_r(i) - mean2);
end
c12 = sum12 / (length(blue_r));
解决方案
推荐阅读
- wpf - HelixToolkit:绑定到 UserControl 中 Torus 控件的 TubeDiameter 属性会产生错误
- image - 在线时颤振重建/重新加载图像小部件
- java - 在 LWJGL 中使用 glCreateShader 时出现上下文错误
- pyspark - 如何纠正model.json的列多于输出的CSV文件
- sas - SAS 在小数点末尾删除一个数字
- javascript - Docker 中的 Express Typescript 应用程序构建问题
- sql - 获取SQL中同一列中2个日期之间的天数
- bash - 在从 bash 中读取文件时循环运行 curl commads
- api - 服务器端上的 Nuxt.js api resquest 返回错误 net::ERR_NAME_NOT_RESOLVED
- c - 为什么我的计算器在乘法和除法时总是给我0,而加法和减法工作正常?