matlab画一只猫,【MATLAB系列04】当一只猫遇见了Matlab

我家有只猫,小名叫胖包。它的背影长这样。

3c26899adadc908c241a786243157d04.png

一只思考喵生的猫

将这张图不断放大后,你会看到一个个色块,就是平时所说的“像素”。每英寸含有多少个像素就称为图片的分辨率(单位ppi,和dpi有区别)。

1837a6043948196eac026fc1cbbb35c6.png

每个像素包含了图片的颜色或灰度等级信息,专业的说法叫做位深度。这些包含不同信息的像素组合起来就是一个矩阵,也就是我们看到的照片。

Matlab正是专业的矩阵软件,用来处理数字图像再合适不过了。首先,我们得学会读取一张图片的信息,用到的函数为imread。例如输入:

>> A=imread('胖包.jpg');

1b939ee0cabb662e07fa9074a0c9357e.png

这时,胖包就变成了一个矩阵A。需要注意的是,输入的图片必须是左边的当前文件夹中的图片,如果不是,则需输入图片的完整路径:

>> A=imread('E:\Turing Studio\MATLAB\胖包.jpg');

读取照片后可以用whos函数查看照片的信息:

>> whos A

d3517e78f7422cdb98bcddd882253bc5.png

1386×1039代表照片的尺寸,×3是R、G、B三个通道,unit8和double一样,都是数据类型。unit8的范围是0~255,即RGB的数值范围。

所以,A矩阵涵盖了照片‘胖包.jpg’的所有信息。如果想看到胖包,只需输入:

>> imshow(A)

0b3ec53335b9b4c4cf2a7c5e4236fba4.png

有了A矩阵之后,各种图像变换就不成问题了。

比如改个大小(imresize),胖包秒变矮胖包:

>> B=imresize(A,[500 500]);

>> imshow(B)

7ded095e0a437f031e899857a0b9d97f.png

或者转个角度(imrotate),胖包变身蝙蝠包:

>> C=imrotate(A,180);

>> imshow(C)

78f8dd59f7ad9b00da902ccfc6302e12.png

想要图片变亮或变暗可以直接在A矩阵的基础上加上或减去一个数值,例如要得到‘亮包’和‘暗包’:

>> imshow(A+50)

>> imshow(A-50)

0750d997a42ad552ae77263538fb8286.png

这些都是数字图像处理最基本的语言,打好基础才好进行更高级的操作。以后我们会讲如何让电镜照片的背景均匀化,如何给灰度图像加伪彩效果,如何给图片去噪声等等。

好了,先写到这里吧,我要给胖包铲屎去了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的用 MATLAB 绘制小猫代码: ```matlab % 清空图窗口 clf; % 设置笔颜色和线宽 lineWidth = 2; faceColor = 'b'; edgeColor = 'k'; % 绘制头 headRadius = 1; headCenter = [0, 0]; head = viscircles(headCenter, headRadius, 'LineWidth', lineWidth, ... 'FaceColor', faceColor, 'EdgeColor', edgeColor); % 绘制耳朵 earRadius = 0.5; earCenter1 = [-0.8, 0.8]; earCenter2 = [0.8, 0.8]; ear1 = viscircles(earCenter1, earRadius, 'LineWidth', lineWidth, ... 'FaceColor', faceColor, 'EdgeColor', edgeColor); ear2 = viscircles(earCenter2, earRadius, 'LineWidth', lineWidth, ... 'FaceColor', faceColor, 'EdgeColor', edgeColor); % 绘制眼睛 eyeRadius = 0.2; eyeCenter1 = [-0.4, 0.2]; eyeCenter2 = [0.4, 0.2]; eye1 = viscircles(eyeCenter1, eyeRadius, 'LineWidth', lineWidth, ... 'FaceColor', 'w', 'EdgeColor', edgeColor); eye2 = viscircles(eyeCenter2, eyeRadius, 'LineWidth', lineWidth, ... 'FaceColor', 'w', 'EdgeColor', edgeColor); % 绘制嘴巴 mouthRadius = 0.4; mouthCenter = [0, -0.4]; mouth = viscircles(mouthCenter, mouthRadius, 'LineWidth', lineWidth, ... 'FaceColor', 'w', 'EdgeColor', edgeColor); % 绘制身体 bodyWidth = 2; bodyHeight = 2; bodyCenter = [0, -3]; body = rectangle('Position', [bodyCenter(1)-bodyWidth/2, bodyCenter(2)-bodyHeight/2, bodyWidth, bodyHeight], ... 'LineWidth', lineWidth, 'Curvature', [1, 1], 'FaceColor', faceColor, 'EdgeColor', edgeColor); % 绘制尾巴 tailWidth = 0.2; tailHeight = 1.5; tailCenter = [0, -3-tailHeight/2]; tail = rectangle('Position', [tailCenter(1)-tailWidth/2, tailCenter(2)-tailHeight/2, tailWidth, tailHeight], ... 'LineWidth', lineWidth, 'Curvature', [1, 1], 'FaceColor', faceColor, 'EdgeColor', edgeColor); % 设置坐标轴范围和比例 axis([-2.5, 2.5, -5, 1]); axis equal; ``` 运行上述代码,会在图窗口中显示出一只小猫的图像。你也可以根据需要自行修改参数来调整小猫的各个部分形状和位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值