练习1
练习内容
分别将彩色图像RGB的某个通道置黑,观察结果,并在一个窗口显示各结果
代码呈现
1 | I = imread('/Users/roarboil/Desktop/1.jpg'); |
代码解析
首先是用imread进行读入,这个在之前用了很多了比较熟悉。之后要注意的一个点是matlab中在进行切片索引时用的是小括号而不是中括号。对于一个RGB图像来说,他是三维的,前两维是图像的长和宽,第三维是图像的三个通道RGB,也就是一共有三页。于是我们这边分别就是利用切片索引来对三页的值进行更改。最后的输出也是比较熟悉的了,不再赘述
呈现效果
练习2
练习内容
将一幅灰度图像的每个像素分别乘2和0.5,观察结果
代码呈现
1 | I = imread('/Users/roarboil/Desktop/1.jpg'); |
代码解析
这个代码的主要要点就是要记住rgb2gray这个函数,并且知道矩阵直接乘一个数就是指对其里面所有数都乘这个数
呈现效果
我们可以看出乘0.5的明显变暗,乘2的明显变亮
练习3
练习内容
将一幅图像的高和宽缩放到原来的0.5倍,再变为二值图像,最后将二值图像顺时针旋转45度并显示为原来图像大小,在一个窗口显示各步结果图像
代码呈现
1 | I = imread('/Users/roarboil/Desktop/1.jpg'); |
代码解析
这边主要是对几个函数的记忆。imresize函数是对图像的尺寸进行一个调整,im2bw是将图像转换为二值图像的一个方法。imrotate是对图像进行一个旋转,注意默认是逆时针。
呈现效果
练习4
练习内容
生成一幅200*200的彩色图像,要求左上角(四分之一)是黄色,右下角是品红,其他是黑色
代码呈现
1 | I = zeros(200,200,3); |
代码解析
这里是和练习一一样对矩阵操作的一些考察,我们这里用zeros来生成一个全0矩阵,然后利用切片工具来进行色彩的修改。
呈现效果
练习5
练习内容
对彩色图像onion.png分别进行水平和垂直镜像,并在一个窗口显示原图、水平镜像和垂直镜像的图
代码呈现
1 | I = imread('onion.png'); |
代码解析
这边的实现要求对矩阵的操作有一个比较高的需求,水平翻转就是在纵坐标上倒一倒,垂直翻转是在横坐标上。同时我们这里在切片的时候不要忘了第三维