Day07 MATLAB图像处理入门

笔记基于matlab官网的图像处理课程。

1.读入图片和显示图片

  • 格式:

    读入 imread(’’);
    显示 imshow(’’);

  • 首先找到自己存放图片的文件夹,它在matlab中是灰色显示的

  • 如果不将这个灰色的文件夹导入到matlab路径,则图片不可以正常的读入和显示,但最好是添加路径,将文件夹变成黑色

2. 二值化—把彩色图转化为灰度图

  • 格式:im2bw(img, [level]); level表示阈值的水平,可加可不加,表示大于level的数字为黑,小于level的数字为白
pic1 = im2bw(picture);
imshow(pic1);

pic2 = im2bw(picture, 0.8);
imshow(pic2);

3. 显示多幅图片

  • subplot—多幅图片显示在同一张画布上

    1. picture = imread('matlabCode\images\3.jpg');
      pic1 = im2bw(picture)
      pic2 = im2bw(picture, 0.8);
      
      subplot(1,3,1),imshow(picture);
      subplot(1,3,2),imshow(pic1);
      subplot(1,3,3),imshow(pic2);
      
    2. picture = imread('matlabCode\images\3.jpg');
      pic1 = im2bw(picture);
      pic2 = im2bw(picture, 0.8);
      
      %figure(1)
      subplot(1,3,1);
      imshow(picture);
      subplot(1,3,2);
      imshow(pic1);
      subplot(1,3,3);
      imshow(pic2);
      

  • 多幅图片显示在多张画布上

    picture = imread('matlabCode\images\3.jpg');
    pic1 = im2bw(picture);
    pic2 = im2bw(picture, 0.8);
    
    %分号或逗号均可
    figure(1),imshow(picture);
    
    figure(2),imshow(pic1);
    
    figure(3),imshow(pic2);
    

4. 给图像加标题

  • 语法:title(’’)

    picture = imread('matlabCode\images\3.jpg');
    pic1 = im2bw(picture);
    pic2 = im2bw(picture, 0.8);
    
    subplot(1,3,1);
    imshow(picture);
    title('原图')
    
    subplot(1,3,2);
    imshow(pic1);
    title('二值化1')
    
    subplot(1,3,3);
    imshow(pic2);
    title('阈值为0.8的二值化')
    

4. 显示图像大小

  • 格式:size()

    disp(size(picture))
    
    %显示disp(),3表示三维通道
    1018        1024           3
    

5. 显示变量值

  • 格式:disp() whos xxx(必须为字符串标量或字符向量)

      whos picture
      
      %结果
      Name            Size                  Bytes  Class    Attributes
    
      picture      1018x1024x3            3127296  uint8        
    

6. 点运算

  • 通过变换函数,将图像的单个像素拿出来运算

1)灰度图:rgb2gray()

picture = imread('matlabCode\images\3.jpg');
pic_gray = rgb2gray(picture)

subplot(1,2,1),imshow(picture),title('原图');
subplot(1,2,2),imshow(pic_gray),title('灰度图');

2)灰度直方图:图像灰度分布的情况

  • 格式:imhist( , [划分区间数])
subplot(1,3,3),imhist(pic_gray),title('灰度直方图');

  • 横坐标表示像素值,纵坐标表示像素个数

3)彩色图像的直方图

  • 原理:一张彩色图有三个通道R、G、B,将这三个通道拆分显示的过程如下
%提取RGB三个分量分别显示
[x, y, z] = size(picture)
subplot(2,2,1),imshow(picture),title('原图');

%提取R通道
r = picture;
%将图片第2,3个通道所有行和列赋值为0
r(:,:,2)=zeros(x, y)
r(:,:,3)=zeros(x, y)
subplot(2,2,2),imshow(r),title('R通道');

%提取G通道
g = picture;
%将图片第1,3个通道所有行和列赋值为0
g(:,:,1)=zeros(x, y)
g(:,:,3)=zeros(x, y)
subplot(2,2,3),imshow(g),title('G通道');

%提取B通道
b = picture;
%将图片第1,2个通道所有行和列赋值为0
b(:,:,1)=zeros(x, y)
r(:,:,2)=zeros(x, y)
subplot(2,2,4),imshow(b),title('B通道');

  • 彩色图像的直方图如下

    %绘制RGB3个通道的直方图
    r = picture(:,:,1);
    g = picture(:,:,2);
    b = picture(:,:,3);
    subplot(2,2,1),imshow(picture),title('原图');
    subplot(2,2,2),imhist(r),title('R通道直方图');
    subplot(2,2,3),imhist(g),title('G通道直方图');
    subplot(2,2,4),imhist(b),title('B通道直方图');
    

4)灰度线性变换

  • 将图像的像素值通过指定的线性函数进行变换,以增强或者减弱图像的灰度

    • 变换公式:g(x,y) = k*f(x,y)+d

    • k>1,增强图像的对比度,图像灰度分布被拉伸了;k<1,图像对比度被消弱了,图像灰度分布变窄;k=1,修改d,图像亮度改变;k<0,原图亮的地方变暗,暗的地方变亮

      %灰度线性变换
      i = im2double(rgb2gray(picture));
      subplot(1,3,1),imshow(picture),title('原图');
      
      pic_gray = rgb2gray(picture)
      subplot(1,3,2),imshow(pic_gray),title('灰度图');
      %增加对比度
      k = 1.25;
      b = 0;
      pic3 = i .* k + b;
      subplot(1,3,3),imshow(pic3),title('增加对比度');
      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值