利用Matlab图像处理工具箱,读、写和显示图像,并计算图像的统计参数。

本文章包含以下内容:

(1)读入图像football.jpg。

(2)了解图像文件的信息:FileName(文件名)、FileModdate(修改时间)、FileSize(文件大小)、Format(文件格式)、FormatVersion(版本)、Width(图像宽度)、Height(高度)、BitDepth(每个像素的位深度)、ColorType(彩色类型)、CodingMethod(编码方法)等。

(3)计算读入图像的二维相关系数(corr2函数),确定像素颜色值(impixel函数),确定像素的平均值(mean2函数),显示像素的信息(impixelinfo函数),计算像素的标准偏移(std2函数)等.

(4)对图像加均值为0,方差为0.01的高斯白噪声形成有噪声的图像J1,即“J1=imnoise(J,’gaussian’,0,0.01)”,计算噪声图像的像素总数、图像灰度的平均值、标准差、J和J1的协方差和相关系数。

   如果将方差加至0.1,重新统计参数。

(5)改变图像的尺寸(imresize函数),旋转图像(imrotate函数),对图像进行裁剪(imcrop函数),再对操作后的图像进行像第(4)步的统计。

代码如下:(可全部放到 function U() 中)

function U()
clear;
clc;
fprintf('图片信息:\n');
disp(imfinfo('football.jpg'))   	%显示图片信息
img1 = imread('football.jpg');      %读取图片到 img
figure('Name', '显示真彩色图像')     %开一个标题为“显示真彩色图像”的窗口
imshow(img1);                       %显示图片
img2 = rgb2gray(img1);              %RGB转化为灰度图像
%计算读入图像同自己的二维相关系数
fprintf('读入图像的二维相关系数: %f \n',corr2(img2,img2));
fprintf('请在图片上选择需要得到像素值的点,之后按下回车');
c = impixel();                  %确定像素颜色值
fprintf('选定像素的颜色值为:\n');
disp(c);
fprintf('像素的平均值为:');
disp(mean2(img1));              %计算像素的平均值
impixelinfo
fprintf('已开启显示像素的信息');
fprintf('\n像素的标准偏移为:');
disp(std2(img1));                           %计算像素的标准偏移
figure('Name', '显示灰度图像')           %开一个标题为“显示灰度图像”的窗口
imshow(img2);                           %显示图片
impixelinfo
figure('Name', '显示噪声图像')        %开一个标题为“显示噪声图像”的窗口
zaosheng(img2,0.01,1);    %方差为0.01的高斯白噪声形成有噪声的图像
zaosheng(img2,0.1,2);     %方差为0.1 的高斯白噪声形成有噪声的图像
figure('Name', '显示变换图像')        %开一个标题为“显示变换图像”的窗口
img3=imcrop(imresize(img2,[500,400]),[0, 0, 320, 256]);   %改变图像的尺寸
fprintf('===================================================\n');
fprintf('改变图像的尺寸为[500,400]后裁剪:\n');
bianhuanshuchu(img3,img2,1)
img3=imresize(imrotate(img2,60),[256,320]); %旋转图像
fprintf('===================================================\n');
fprintf('旋转图像90°:\n');
bianhuanshuchu(img3,img2,2)
img3=imresize(imcrop(img2,[40, 32, 160, 128]),[256,320]);        %裁剪图像
fprintf('===================================================\n');
fprintf('裁剪图像[40, 32, 160, 128]区域:\n');
bianhuanshuchu(img3,img2,3)


function zaosheng(im,c,x)
im2=imnoise(im,'gaussian',0,c);      %有噪声的图像
subplot(1,2,x)
imshow(im2);                         %显示图片
impixelinfo
fprintf('===================================================\n');
fprintf('方差为%f的噪声图像:\n',c);
tongji(im,im2);

function bianhuanshuchu(img,im,x)
subplot(1,3,x)
imshow(img);                         %显示图片
impixelinfo
tongji(im,img);


function tongji(im,im2)
fprintf('像素总数: %d \n',numel(im2));         %计算像素总数
fprintf('灰度的平均值为:%f\n',mean2(im2));    %计算灰度的平均值
fprintf('图像的标准差为:%f\n',std2(im2));     %计算图像的标准差
%计算灰度图像和输入图像的协方差
fprintf('灰度图像和该图像的协方差: \n');
disp(cov(double(im),double(im2)));
%计算灰度图像和输入图像的二维相关系数
fprintf('灰度图像和该图像的二维相关系数: %f \n\n',corr2(im,im2));

结果示例:

图片信息:
           Filename: 'C:\Program Files (x86)\MATLAB71\toolbox\images\imdemos\football.jpg'
        FileModDate: '01-Mar-2001 16:52:38'
           FileSize: 27130
             Format: 'jpg'
      FormatVersion: ''
              Width: 320
             Height: 256
           BitDepth: 24
          ColorType: 'truecolor'
    FormatSignature: ''
    NumberOfSamples: 3
       CodingMethod: 'Huffman'
      CodingProcess: 'Sequential'
            Comment: {}

读入图像的二维相关系数: 1.000000 
请在图片上选择需要得到像素值的点,之后按下回车选定像素的颜色值为:
   168   138   138

像素的平均值为:   77.5170

已开启显示像素的信息
像素的标准偏移为:   44.2095

===================================================
方差为0.010000的噪声图像:
像素总数: 81920 
灰度的平均值为:74.588953
图像的标准差为:44.125045
灰度图像和该图像的协方差: 
  1.0e+003 *

    1.3782    1.3521
    1.3521    1.9470

灰度图像和该图像的二维相关系数: 0.825428 

===================================================
方差为0.100000的噪声图像:
像素总数: 81920 
灰度的平均值为:82.510181
图像的标准差为:72.033990
灰度图像和该图像的协方差: 
  1.0e+003 *

    1.3782    1.1152
    1.1152    5.1889

灰度图像和该图像的二维相关系数: 0.417033 

===================================================
改变图像的尺寸为[500,400]后裁剪:
像素总数: 81920 
灰度的平均值为:85.962500
图像的标准差为:45.433291
灰度图像和该图像的协方差: 
  1.0e+003 *

    1.3782   -0.2472
   -0.2472    2.0642

灰度图像和该图像的二维相关系数: -0.146551 

===================================================
旋转图像90°:
像素总数: 81920 
灰度的平均值为:39.127881
图像的标准差为:45.914070
灰度图像和该图像的协方差: 
  1.0e+003 *

    1.3782    0.9906
    0.9906    2.1081

灰度图像和该图像的二维相关系数: 0.581143 

===================================================
裁剪图像[40, 32, 160, 128]区域:
像素总数: 81920 
灰度的平均值为:104.494055
图像的标准差为:54.283705
灰度图像和该图像的协方差: 
  1.0e+003 *

    1.3782    0.1799
    0.1799    2.9467

灰度图像和该图像的二维相关系数: 0.089295 

 

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值