打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用Matlab处理图像(一)

通过程序能够看到图像是进行视觉学习的第一步,今天小白就给大家如何读取图片并进行简单的操作。


01

Matlab的使用

小白在大一的时候接触过Matlab,怀着激动的心打开软件,然而。。。我并不会使用,面对着命令界面一顿乱敲,结果可想而知,满屏幕红红的文字,全是各种报错。后来在做导师助教的时候,发现很多本科生在使用Matlab时和我当初采用的方法是一样的,在命令窗口里面直接敲入代码。当输错代码的时候,就会重新复制上面所有的代码,造成开发效率极低。这里首先小白简单介绍一下Matlab的使用。

当我们打开软件的时候会看到如下的界面,图片中我们对每个区域的功能进行了简单的介绍。这里面占据面积最大的区域,往往是在开发过程中使用率最低的区域。

在创建一个新的工程的时候,我们需要点击界面左上角的黄色加号“New”,在下拉菜单中可以选择想要创建的文件。在写程序的时候,我们最常用的是.m文件,可以选择下拉菜单的第一个、第二个选项来创建空白的文本。在文本里就可以像编写C语言一样来编写程序啦。


02


显示一张图片

在创建好.m文件之后,我们需要将我们想读取的图片放在工作路径下面。虽然也可以不用放进来,但是小白建议,良好的编程习惯要从一点一滴做起,将属于一个工程的所有文件放在一个大的文件夹下是一个很好的习惯。毕竟我们不知道什么时候可能会删除某些图片或者用不到的文件的时候,就会删除掉其他程序需要的文件,造成下次运行程序报错。在文件中写下读取图像的代码。

image = imread('xiaobai.jpg');

imshow(image)

通过imread()函数来读取图像,也可以使用图片所在的路径来加载图片,这样可以实现在不同路径下图片的加载。之后使用imshow()函数来显示图片。这两个函数小白觉得非常好记,通过字面就能知道意思。下面通过点击上方的绿色的三角运行程序,我们就能看到小白可爱的相片啦~

通过右面的数据空间我们可以发现,image变量是一个1024*1024*3的矩阵数据。说明我们图像有1024*1024个像素,后面的三说明是一个彩色图片,分别代表着RGB三个通道的数据。我们分别提取三个颜色通道的数据。

image_R=image(:,:,1); %读取矩阵中第一层数据

image_G=image(:,:,2);

image_B=image(:,:,3);

figure(1) %创建一个图像显示的对话框

subplot(2,2,1),imshow(image_R);%将对话框分成2*2个子部分,在第一部分显示图像

subplot(2,2,2),imshow(image_G);

subplot(2,2,3),imshow(image_B);

subplot(2,2,4),imshow(image);

代码的注释比较清晰,运行程序就能看到我们逍遥的结果不同颜色通道的小白。

好奇的小伙伴肯定会问,为什么每个通道的颜色都是黑白的呀。因为小白将每个通道单独取出来的,这样就编程了一张黑白图片了。如果想显示每个通道的颜色,我们只需要将出红色通道外的其他通道都置为零就可以得到对应颜色通道的图像了。

我们有时还需要使用灰色图像来减少原始图像的数据量,可以通过rgb2gray()函数来实现彩色图像想灰色图像转化。

image = imread('xiaobai.jpg');

image_g = rgb2gray(image);%图像灰度化

imshow(image_g);

转换后的图像和每个通道的图像色彩都不一样。

我们可以对生成的灰色图像进行保存。在保存的时候我们可以根据需求选择不同的路径和格式。这里小白选择png格式和存放在当前工作空间中。

imwrite(image_g,'new_xiaobai.png');

在当前工作空间看到生成new_xiaobai.png则证明成功保存图片。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab 颜色模型之间的转换
【精品博文】MATLAB图形保存引发的猜想
matlab中直方图规定化(直方图匹配)的单映射 – MATLAB中文论坛
17.6 使用纹理滤波器分割图像(1) - 51CTO.COM
MATLAB中图像处理的函数
MATLAB实现shepp
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服