Matlab函数imread() imshow() subplot() rgb2gray() imresize(),读取图像显示、尺度变换、反色

一、目标:

       1、练习以下函数imread()、imshow()、subplot()、rgb2gray()、imresize()

        2、读取lena.bmp图像并显示,将其反色处理后再显示

 

二、函数分析:

1、imread()

       定义:从图形文件读取图像

       形式:A = imread(filename)

       描述:从filename指定的文件中读取图像,从其内容推断文件的格式。如果文件名是多图像文件,则imread将读取文件中的第一个图像。

 

2、imshow()

    定义:显示图像

    形式:imshow(I)

    描述:imshow(I)在图形中显示灰度图像I。imshow使用图像数据类型的默认显示范围,并优化图像显示的图形、轴和图像对象属性。

 

3、subplot()

       定义:在平铺位置创建轴

       形式:subplot(m,n,p)

       描述:将当前图形划分为m乘n的网格,并在p指定的位置创建轴。MATLAB按行对子图位置进行编号。第一个子批次是第一行的第一列,第二个子批次是第一行的第二列,依此类推。如果轴存在于指定位置,则此命令将使这些轴成为当前轴。

 

4、rgb2gray()

       定义:将RGB图像或颜色贴图转换为灰度

       形式:I = rgb2gray(RGB)

       描述:将真彩色图像RGB转换为灰度图像I。rgb2gray函数通过在保持亮度的同时消除色调和饱和度信息,将RGB图像转换为灰度图像。如果你有并行计算工具箱™已安装,rgb2gray可以在GPU上执行此转换。

 

5、imresize()

       定义:调整图像大小

       形式:B = imresize(A,scale)

       描述:返回图像B,该图像的比例乘以A的大小。输入图像A可以是灰度、RGB或二进制图像。如果A有两个以上的维度,imresize只调整前两个维度的大小。如果“缩放”在[0,1]范围内,则B小于A。如果“缩放”大于1,则B大于A。默认情况下,imresize使用双三次插值。

 

三、代码展示:

具体代码如下:

% 1、练习imread()、imshow()、subplot()、rgb2gray()、imresize()函数
%    imread()读取图像到MATLAB空间
%    imshow()显示图像
%    subplot()对图像窗分区显示
%    rgb2gray()将rgb图像换成灰度图像
%    imresize()图像尺度变换
%
% 2、读取lena.bmp图像并显示,将其反色处理后再显示
%
% @author: jackma
% @time:   2020-9-16 17:04
% @URL:   www.jackrma.com
% @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
%            链接和作者姓名,否则本人将付诸法律。
% @edit:   

% 1. 显示lena小姐姐真彩色图像
imgrgb = imread('lena512color.BMP'); %读取图像
figure('Name', '显示lena小姐姐真彩色和灰度图像'); %设置标题
subplot(121); %图像分成1行2列,rgb图在第1个
imshow(imgrgb); %显示rgb彩色图像
title('原始彩色图像');

% 2.显示lena小姐姐灰度图像
imggray = rgb2gray(imgrgb); %将rgb图像转换成灰度图像
subplot(122);
imshow(imggray)%显示灰度图像
title('原始灰度图像');

% 3.图像尺度变换
imgchange = imresize(imggray, 2); %对图像做缩放处理
figure('Name', 'lena小姐姐图像尺度变换');
imshow(imgchange);
title('lena小姐姐图像尺度变换');

% 3.图像色彩反转
imgreverse = imcomplement(imgrgb);
figure('Name', 'lena小姐姐图像色彩反转');
imshow(imgreverse);
title('lena小姐姐图像色彩反转');

四、结果展示:

 

图2 显示原视彩色Lena图像、灰度图像                                                                               图3图像尺度变换

                                                                                                        (因为B = imresize(A,scale)中scale是2,即为放大两倍)

 

                                                                                图4 图像色彩反转

附录:

注:我是用VScode 编写和编译 matlab代码的,用VScode插件即可实现。具体操作请看https://blog.csdn.net/qq_37930244/article/details/82563152

还有Lena小姐姐原版图像,我分享下资源(包括原版未裁剪的图片和另外一张Lena小姐姐照片 嘿嘿嘿!)

https://pan.baidu.com/s/1LMsC3cQpF4WSO15aMZvNTA

提取码  uwhz

相关推荐
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页