欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-20 22:09:27
...

一、目标:

       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(具体代码见附录)

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

                                                            图1 具体代码

四、结果展示:

 

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

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

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

 

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

                                                                                图4 图像色彩反转

附录:

代码如下:

% 1、练习imread()、imshow()、subplot()、rgb2gray()、imresize()函数
%    imread()读取图像到MATLAB空间
%    imshow()显示图像
%    subplot()对图像窗分区显示
%    rgb2gray()将rgb图像换成灰度图像
%    imresize()图像尺度变换
%
% 2、读取lena.bmp图像并显示,将其反色处理后再显示
%
% author: jackma
% time:   2020-9-16 17:04 -- 17:49
% email:  aaa@qq.com
% edit:   1

% 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小姐姐图像色彩反转');

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

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

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

提取码  uwhz

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

相关标签: matlab