zoukankan      html  css  js  c++  java
  • 利用matlab求图像均值和方差的几种方法

    一、求均值

    % 求一副灰度图像的均值
    close all;
    clear;
    clc;
    i=imread('d:/lena.jpg'); %载入真彩色图像
    i=rgb2gray(i); %转换为灰度图
    i=double(i);  %将uint8型转换为double型,否则不能计算统计量
    % avg1=mean(i,1); %列向量均值
    % avg2=mean(i,2); %行向量均值
    % avg3=mean(i); %列向量均值
    [m,n]=size(i);
    s=0;
    for x=1:m
        for y=1:n
            s=s+i(x,y); %求像素值总和 s
        end
    end
    %所有像素均值
    a1=mean(mean(i)); %第一种方法:先计算列向量均值,再求总均值。
    a2=mean2(i); %第二种方法:用函数mean2求总均值
    a3=s/(m*n);  %第三种方法:按公式计算,像素值总和除以像素个数。
    a4=sum(sum(i))/(m*n); %第四种方法:也是按公式计算,但是用sum来求像素值总和。

    二、求方差

    % 求一副灰度图像的方差
    close all
    clear
    clc;
    i=imread('d:/lena.jpg'); %载入真彩色图像
    i=rgb2gray(i); %转换为灰度图
    i=double(i);  %将uint8型转换为double型,否则不能计算统计量
    % sq1=var(i,0,1); %列向量方差,第二个参数为0,表示方差公式分子下面是n-1,如果为1则是n
    % sq2=var(i,0,2); %行向量方差
    avg=mean2(i);  %求图像均值
    [m,n]=size(i);
    s=0;
    for x=1:m
        for y=1:n
        s=s+(i(x,y)-avg)^2; %求得所有像素与均值的平方和。
        end
    end
    %求图像的方差
    a1=var(i(:)); %第一种方法:利用函数var求得。
    a2=s/(m*n-1); %第二种方法:利用方差公式求得
    a3=(std2(i))^2; %第三种方法:利用std2求得标准差,再平方即为方差。
  • 相关阅读:
    python读取二进制文件写入到txt
    python格式化输出
    字符编码
    python--随时记录
    python-web服务器
    openssh移植
    select、poll、epoll
    (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    heartbeat与keepalived的区别
    salt 常用命令整理
  • 原文地址:https://www.cnblogs.com/denny402/p/4008210.html
Copyright © 2011-2022 走看看