图像处理笔记 —— 图像的读取及RGB分离等

图像处理笔记 —— 图像的读取及RGB分离等


  • 源码运行平台:matlab2015

  • 使用的图片库,USC-SIPI:http://sipi.usc.edu/database


一. 图像的读取

matlab中图像的读取主要是 imread 函数,imread 函数需要输入您要读取的图片的路径,返回一个图像矩阵,如果是彩色图返回一个三维矩阵,如256*256*3,其中256×256是指图像中的维数256×256,后面的3位为RGB每个8bit的数值,其中(:,:,1)为红色,(:,:,2)为绿色,(:,:,3)为蓝色;如果是灰度表示的图片,则返回一个二维矩阵,如256*256,其中256×256是指图像中的维数256×256。

figure('NumberTitle','off','Name','原图');    % 图像显示窗口的设置
img = imread('4.1.06.tiff');            %图片读取
imshow(img);   %图片显示
title('原图');  %图片的 标题

二. RGB三元素的分离

在进行图像处理时,一般需要RGB三原色的分离,以下代码即为分离过程:先从图像矩阵中分别提取出三原色,然后分别显示,详情见代码注释

[r,c,z] = size(img);        %提取图像矩阵维数
red =zeros(256,256,3);      %分为构造红色,绿色,蓝色的图像矩阵
green =zeros(256,256,3);
blue =zeros(256,256,3);

subplot(222);           
red(:,:,1) = img(:,:,1);    %提取红色的色彩值
red=uint8(red);         %将double类型转换成8bits类型
imshow(red);            %显示仅有的红色图片
title('红色分离');

subplot(223);
green(:,:,2) = img(:,:,2);
green=uint8(green);
imshow(green);
title('绿色分离');

subplot(224);
blue(:,:,3) = img(:,:,3);
blue=uint8(blue);
imshow(blue);
title('蓝色分离');

三. 把彩色图片转化成灰度图片

在做图像处理时,经常会将彩色图片转换成灰度图来进行表示,matlab 给我们提供了很好的函数来进行转换,详情见源码:

I = rgb2gray(img);  %转换函数,输入为彩色图像矩阵,输出为灰度图像矩阵
figure(3);
imshow(I);

你可能感兴趣的:(图像处理)