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求得标准差,再平方即为方差。
  • 相关阅读:
    C语言PRO2
    pro5
    自我介绍
    李喆第5次作业
    李喆的作业
    一个队列类的实现(比delphi自带的速度快70倍)
    关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法
    高吞吐量的一个日志函数类_用于IOCP (Delphi)
    PostThreadMessage在线程中应用(以多线程网站数据采集为例)
    微软企业库5 加密篇
  • 原文地址:https://www.cnblogs.com/denny402/p/4008210.html
Copyright © 2011-2022 走看看