MATLAB图像处理

        本次内容基于MATLAB的图像处理进行基本介绍,内容包含图像数据的读取、图像展示、裁剪、调整等变换。

1、imread()函数

        ①若为灰色图像,则A为 M*N 数组,灰色图像的每个像素的灰度值是一个由黑到白的区间;

        ②若为真彩色图像则返回 M*N*3 数组,彩色图像的每个像素都分成R、G、B三个基色分量,

分量决定基色的强度,这样的颜色成为真彩色;

        ③彩色图像具有三个通道,加入图像深度为24,则R、G、B各占用8位,每个基色的强度等级

为 2^8 ,图像可容纳 2^24=16MB。

        imread(filename,fmt): 函数返回数组A,fmt为指定格式。如:

RGB = imread('p1.jpg');
imshow(RGB);
title('原彩色图');

2、imshow()函数

        该函数功能是显示图像,常用用法如下:

① imshow(A);                % 类似于mshow(filename);

②imshow(A,map);        % map为图像颜色表,[0,1]内值组成的c*3矩阵,每行都是一个三元素RGB  

3、rgb2gray()函数

        该函数是matlab内部一种处理图像的函数,保持亮度的同时消除色调和饱和度信息,将rgb图

像转换为灰度图像,即灰度化处理的功能。用法如下:

RGB = imread('p1.jpg');
GRAY = rgb2gray(RGB);
imshow(GRAY);
title('灰色图像');
[A,map] = imread('p1.jpg');        
% A为图像索引,     map为图像对应的颜色表
newmap = rgb2gray(map);
imshow(A,newmap);

4、imresize() 函数

        imresize函数用于调整图像的大小,暂时用到的语法有两种:

① B = imresize(A, scale ) ,scale为图像放大倍数

RGB = imread('p1.jpg');
imagesize = imresize(RGB,2);    % 改变后图像大小 = 原图像大小 * x
imshow(imagesize);
title('尺度变换');

② B = imresize(A,[numrows numcols]),图像B的行数和列数由[numrows numcols]标定。两值有

可能是NaN,在这种情况下,imresize函数将自动计算行数或者列数,保留图 像原有的宽高比。

RGB = imread('p1.jpg');
imagesize = imresize(RGB,[120 160]);    % 改变后图像大小 = 原图像大小 * x
imshow(imagesize);
title('尺度变换');

5、imcomplement()函数

        对图像数据取反得到负片。图像的反转变换,将x的像素值转换为255-x。

RGB = imread('p1.jpg');
imagereverse = imcomplement(RGB);
imshow(imagereverse);
title('色彩翻转');

6、imadjust()函数

① B = imadjust(A,[low_in high_in],[low_out high_out]) ;

[low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]为变换后的灰度范围

RGB = imread('p1.jpg');
RGB1 =imadjust(RGB,[0.2 0.9],[0 1]);  % 调整图像强度值或颜色图
imshow(RGB1);
title('图像增强');

② 通过函数imadjust()调整灰度图像的亮度

RGB = imread('p1.jpg');
RGB1 = imadjust(RGB,[0.1 0.5],[0 1],0.4); %调整图像灰度并调高亮度
RGB2 = imadjust(RGB,[0.1 0.5],[0 1],4); %调整图像灰度并调低亮度
imshow(RGB1);
title('亮度增强');
imshow(RGB2);
title('亮度减弱');

7、imcrop()函数

        B = imcrop(A,rect)裁剪图像。rect是表单的四元素位置向量[x y width height],以左上角

作为坐标(0,0),用于指定裁剪矩形的位置和大小。

RGB = imread('p1.jpg');
RGB1 = imcrop(RGB,[1300 300 1000 1000]); 
imshow(RGB1);
title('图像裁剪');

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