zoukankan      html  css  js  c++  java
  • MATLAB图像处理 (一)

    最近在做关于计算机视觉图像处理的相关东西。总结一下知识点。

    首先关于图像的知识,图像可以分为黑白照片或者彩色照片。每幅照片都是由一个个像素点构成。如果是彩色图像,则每幅图片可以分为RGB三通道分别表示。由于现在我们处理的几乎全是彩色图像,所以我们主要考虑彩色图像,暂不讨论黑白图像。我们拿下面这幅图像为例。顺便看看这个图像的属性。

    一、读取文件提取RGB三通道

    MATLAB读取文件可以分为读取图片和视频。我们这里是读取图片,等到读取视频的时候再总结视频。

    读取图片文件使用imread(),里面填的是图片的名称或者是图片的地址。

     1 %读取图片
     2 image = imread('1.jpg');
     3 figure;
     4 subplot(2,2,1)
     5 imshow(image);
     6 title('原始图像');
     7  %提取图片的RGB三通道
     8 image_double = double(image);
     9 R = image_double(:,:,1);
    10 G = image_double(:,:,2);
    11 B = image_double(:,:,3);
    12 %分别显示RGB三通道的图片信息
    13 subplot(2,2,2);
    14 imshow(uint8(R));
    15 title('红色通道');
    16 subplot(2,2,3);
    17 imshow(uint8(G));
    18 title('绿色通道');
    19 subplot(2,2,4);
    20 imshow(uint8(B));
    21 title('蓝色通道');
    View Code

    这里直接使用一行代码就可以读取图片信息了。

    可以在工作区看到原始图像image的信息。427*640*3,分别表示像素为高*宽为427*640,与图像信息相符合。3表示图片为RGB彩色图片。红绿蓝。原始图片的类型是uint8,所以将三个通道信息提取出来后为double类型,然后生成图像时在使用uint8格式转换。

    二、RGB三通道合成原始图像

    现在我们获得了RGB三个成分分量,现在我们将三个分量在合成为原始图像。

    1 %RGb合成原始图像
    2 mix(:,:,1) = R;
    3 mix(:,:,2) = G;
    4 mix(:,:,3) = B;
    5 figure ;
    6 imshow(uint8(mix));
    7 title('合成图像');
    View Code

    全部代码如下:

    代码一(直接提取RGB):

    %读取图片
    image = imread('1.jpg');
    figure;
    subplot(2,2,1)
    imshow(image);
    title('原始图像');
    R1 = image(:,:,1);
    G1 = image(:,:,2);
    B1 = image(:,:,2);
    %提取图片的RGB三通道
    % image_double = double(image);
    % R = image_double(:,:,1);
    % G = image_double(:,:,2);
    % B = image_double(:,:,3);
    %分别显示RGB三通道的图片信息
    subplot(2,2,2);
    imshow(uint8(R1));
    title('红色通道');
    subplot(2,2,3);
    imshow(uint8(G1));
    title('绿色通道');
    subplot(2,2,4);
    imshow(uint8(B1));
    title('蓝色通道');
    
    %RGb合成原始图像
    mix(:,:,1) = R1;
    mix(:,:,2) = G1;
    mix(:,:,3) = B1;
    figure ;
    imshow(uint8(mix));
    title('合成图像');
    View Code

    代码二:

     1 %读取图片
     2 image = imread('1.jpg');
     3 figure;
     4 subplot(2,2,1)
     5 imshow(image);
     6 title('原始图像');
     7  %提取图片的RGB三通道
     8 image_double = double(image);
     9 R = image_double(:,:,1);
    10 G = image_double(:,:,2);
    11 B = image_double(:,:,3);
    12 %分别显示RGB三通道的图片信息
    13 subplot(2,2,2);
    14 imshow(uint8(R));
    15 title('红色通道');
    16 subplot(2,2,3);
    17 imshow(uint8(G));
    18 title('绿色通道');
    19 subplot(2,2,4);
    20 imshow(uint8(B));
    21 title('蓝色通道');
    22 
    23 %RGb合成原始图像
    24 mix(:,:,1) = R;
    25 mix(:,:,2) = G;
    26 mix(:,:,3) = B;
    27 figure ;
    28 imshow(uint8(mix));
    29 title('合成图像');
    View Code
  • 相关阅读:
    Google Map API Version3 :代码添加和删除marker标记
    ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)
    ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)(续)纯代码
    ArcGIS Server开发教程系列(7)使用ArcGIS API for Javascript-Hello World
    ArcGIS Server开发教程系列(3)切片
    3.1、常用图片格式
    【Emmet】HTML速写之Emmet语法规则
    2.11、特征布局实例讲习
    2.10、background属性
    2.9、定位
  • 原文地址:https://www.cnblogs.com/hequnwang/p/13697606.html
Copyright © 2011-2022 走看看