malab函数imread()、imshow()、subplot()、rgb2gray()、imresize(),读取图像并显示、尺度变换、反色处理
一、目标:
1、练习以下函数imread()、imshow()、subplot()、rgb2gray()、imresize()
2、读取lena.bmp图像并显示,将其反色处理后再显示
二、函数分析:
1、imread()
定义:从图形文件读取图像
描述:从filename指定的文件中读取图像,从其内容推断文件的格式。如果文件名是多图像文件,则imread将读取文件中的第一个图像。
2、imshow()
定义:显示图像
形式:imshow(I)
描述:imshow(I)在图形中显示灰度图像I。imshow使用图像数据类型的默认显示范围,并优化图像显示的图形、轴和图像对象属性。
3、subplot()
定义:在平铺位置创建轴
描述:将当前图形划分为m乘n的网格,并在p指定的位置创建轴。MATLAB按行对子图位置进行编号。第一个子批次是第一行的第一列,第二个子批次是第一行的第二列,依此类推。如果轴存在于指定位置,则此命令将使这些轴成为当前轴。
4、rgb2gray()
定义:将RGB图像或颜色贴图转换为灰度
描述:将真彩色图像RGB转换为灰度图像I。rgb2gray函数通过在保持亮度的同时消除色调和饱和度信息,将RGB图像转换为灰度图像。如果你有并行计算工具箱™已安装,rgb2gray可以在GPU上执行此转换。
5、imresize()
定义:调整图像大小
描述:返回图像B,该图像的比例乘以A的大小。输入图像A可以是灰度、RGB或二进制图像。如果A有两个以上的维度,imresize只调整前两个维度的大小。如果“缩放”在[0,1]范围内,则B小于A。如果“缩放”大于1,则B大于A。默认情况下,imresize使用双三次插值。
三、代码展示:
具体代码见图1(具体代码见附录)
图1 具体代码
四、结果展示:
图2 显示原视彩色Lena图像、灰度图像 图3图像尺度变换
(因为B = imresize(A,scale)中scale是2,即为放大两倍)
图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