数字图像处理 matlab 基本操作 实验一的部分内容

数字图像处理的相关基本操作

操作

1. 导入图像

I = imread('football.jpg');   % 用imread读取磁盘文件/该文件软件自带

2. 显示图像并设置标题

imshow(I);title('橄榄球');

结果:
软件自带的图像

3. 将彩色图像转为灰度图像

J= rgb2gray(I);

4. 计算并显示灰度图像J的灰度直方图

imhist(J);

5. 求图像J的均值

Ave = mean2(J);

6. 求图像J的标准差

SD = std2(double(J))

7. 求大小

s = size(J);

8. 获得反白图像K

all_white = 255*ones(s(1),s(2)); % 设置全部为白色灰度255
all_white_uint8 = uint8(all_white); % 将double类型矩阵转化为uint8类型矩阵
K = imsubtract(all_white_uint8,J); % 图像相减得反白图像K

9. 将反白后的图像存入文件

imwrite(K,'aa2.jpg'); % 将反白图像存入文件 /文件名为'aa2.jpg'

这里我们写一个方法,可以计算所有的值,并且可以显示所有的图像

% 用来计算,返回(均值Ave,标准差SD,大小s,反白图像K),J为一个灰度图像
function [Ave,SD,s,K] =  xx(J)
subplot(2,2,2);imshow(J);title('有噪图像J1');
subplot(2,2,3);imhist(J);title('灰度直方图');
Ave = mean2(J); % 图像均值
fprintf('均值为%cn',Ave);
SD = std2(double(J)); % 图像均值
fprintf('均值为%cn',SD);
s = size(J);
fprintf('图像大小为');
disp(s);
all_white = 255*ones(s(1),s(2)); % 设置全部为白色灰度255
all_white_uint8 = uint8(all_white); % uint8类型矩阵
K = imsubtract(all_white_uint8,J); % 图像相减得反白图像K
subplot(2,2,4);imshow(K);title('反白图像K');
end

主函数:

I = imread('football.jpg');   % 用imread读取磁盘文件
subplot(2,2,1);
imshow(I);title('橄榄球');
J= rgb2gray(I);
[Ave,SD,s,K]=xx(J);
imwrite(K,'aa2.jpg'); % 将反白图像存入文件 

显示结果:
图像显示
输出结果:

均值为7.445164e+01
均值为3.712365e+01
图像大小为   256   320

一些函数的基本使用

1. 读入图像的二维相关系数(corr2)

% 对图像J加均值为0,方差为0.01的高斯白噪音形成有噪声的图像J1
J1 = imnoise(J,'gaussian',0,0.01); % 
M = corr2(J,J1);
disp(M);

输出结果:

>> test
    0.8245

2. 像素的颜色值(impixel)

P=impixel(I); % 展示图像,点击选择坐标,点击enter,返回一个三维数组
disp(P);

显示图像:
tuxiang
输出结果:

>> test
   252   250   253
    24    34    43
   127    77    80
   123    53    55
   126    65    64

3. 像素的平均值(mean2)

P2 = mean2(I); % 求像素的平均值
disp(P2)

输出结果:

>> test
   77.5170

4. 显示像素的信息(impixelinfo)

imshow(I);
title('橄榄球')
ds = impixelinfo; % 展示图像信息(必须先展示图像)
disp(ds);

图像显示:

像素
输出结果:

>> test
  Panel (pixelinfo panel) - 属性:

              Title: ''
    BackgroundColor: [0.9400 0.9400 0.9400]
           Position: [1 1 263.2000 20]
              Units: 'pixels'

  显示 所有属性

5. 像素的标准偏移(std2)

st = std2(I);  % 像素的标准偏移
disp(st)

输出结果:

>> test
   44.2094

6. 改变图像的尺寸(imresize)

为了方便理解,这里我们输出一下大小

% I2 = imresize(I,2); % 放大二倍
I2 = imresize(I,0.2); % 缩小二倍
imshow(I2);
title('我缩小了'); % 
disp(size(I));
disp(size(I2)); % 已经改变了

图像显示:
缩小

输出结果:

>> test
   256   320     3

    52    64     3

7. 旋转图像(imrotate)

dr = imrotate(I,45); % 参数(图像,角度)
imshow(dr);
title('旋转图像');

图像显示:
在这里插入图片描述

8. 对图像进行裁剪(imcrop)

% 参数:(图像,[左上角横坐标,左上角纵坐标,水平大小,竖直大小])
dc = imcrop(I,[6,6,100,100]); 
imshow(dc);
title('裁剪了');

显示图像:
裁剪
创作不易,请大家多多关注!!!(up:惊呼~ 尖叫~)
如有错误,请告知up,将于下一篇进行更正
在这里插入图片描述

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>