图像均值、方差、标准差

图像均值、方差、标准差

介绍

均值(mean) = (a0, a1, a2) / 3
方差 = ((a0 - mean)² + (a1 - mean)² + (a2 - mean)²) / 3
标准差 = 方差开方
可以通过meanStdDev函数获取均值以及标准差

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对灰度图像均值方差规定化的 C 语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <math.h> #define ROWS 512 // 图像高度 #define COLS 512 // 图像宽度 int main() { // 读取原始图像 FILE *fp; if ((fp = fopen("lena.raw", "rb")) == NULL) { printf("Error: Cannot open file for reading.\n"); exit(1); } unsigned char image[ROWS][COLS]; fread(image, sizeof(unsigned char), ROWS*COLS, fp); fclose(fp); // 计算原始图像均值标准差 double mean = 0.0, std_dev = 0.0; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { mean += image[i][j]; } } mean /= ROWS*COLS; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { std_dev += pow(image[i][j] - mean, 2); } } std_dev = sqrt(std_dev / (ROWS*COLS - 1)); // 设定目标均值标准差 double target_mean[] = {50.0, 100.0, 200.0}; // 目标均值 double target_std_dev[] = {10.0, 20.0, 30.0}; // 目标标准差 // 对图像进行均值方差规定化 for (int k = 0; k < 3; k++) { // 对每组目标均值标准差分别处理 double a = target_std_dev[k] / std_dev; double b = target_mean[k] - a * mean; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { double new_value = a * (image[i][j] - mean) + b; if (new_value < 0.0) { new_value = 0.0; } else if (new_value > 255.0) { new_value = 255.0; } image[i][j] = (unsigned char) new_value; } } // 保存处理后的图像 char filename[20]; sprintf(filename, "lena_%d.raw", k+1); if ((fp = fopen(filename, "wb")) == NULL) { printf("Error: Cannot open file for writing.\n"); exit(1); } fwrite(image, sizeof(unsigned char), ROWS*COLS, fp); fclose(fp); } return 0; } ``` 在上面的代码中,我们首先读取了名为“lena.raw”的灰度图像,然后计算了其均值标准差。接着,我们根据设定的三组目标均值标准差,对原始图像进行均值方差规定化处理,并将处理后的图像保存到三个不同的文件中。对于每个目标均值标准差,我们都使用了一个线性变换来将原始图像映射到目标均值标准差的范围内。最后,我们将处理后的图像保存到文件中,以便进一步观察和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值