这次blog提到的操作对于matlab来说都很基础,而且对于有编程和计算机基础的人来说也很简单,不过我一开始也是对于matlab的语法什么的一知半解,这里把我亲手写的东西push出来,小伙伴们共勉。
目标
废话不多说了
我们的目标就是成成一个这样的图:
和我选的图片有点粗糙,但是大家仔细看这里面的镜像图可别以为是原图。
大致就是,我们要选择一个图片作为原图(左上角的那一张),然后我们翻转,镜像,再翻转,再加上一些位图操作变成九宫格的每个图像的样子 。
其实真的比较简单,直接上代码
导入图片
img1=imread("test.jpg")
翻转镜像等基础操作
这里不一一列举,因为大家试一试或者百度一下就知道哪个是翻转那个是镜像了。
rotMat=rot90(img1);
fliMat=rot90(img1);
fliMat2=rot90(fliMat);
fliMat3=rot90(fliMat2);
daoguolai=flipud(img1);
jiangxiang=fliplr(img1);
简单一看,你们就会发现,matlab的图像操作简直easy到爆炸。
位图操作
这里其实是比上面有难度的,还是要了解一些位图的基本性质的,这里我们用的GRB图像。
简单来讲就是我们把一般的位图图片理解为一个二维矩阵,然后每个点就是代表一个pixel,可以说给两个维度的数据就可以对这个pixel进行定位了。
那么RGB图片就是在这个的基础上增加了一个维度,也就是说RGB图像还具有深度,而在深度这个维度上有三层,分别就是红、绿、蓝,对这个深度维度的数值的调整就可以进行颜色的改变进而改变图像。
sanjiao1=tril(img1(:,:,1));
sanjiao2=tril(img1(:,:,2));
sanjiao3=tril(img1(:,:,3));
sanjiao=cat(3,sanjiao1,sanjiao2,sanjiao3);
img2=img1;
img2(100:400,100:400,1:3)=255;
img3=img1;
img3(:,:,:)=0;
img3(100:400,100:400,1:3)=img1(100:400,100:400,1:3);
黑色三角我们用的思路是分别将三个色彩层的相同的一个角变黑,然后再进行合并,另外的角也就呈现了原色彩的图像。
别的操作不是很难,一看代码就应该知道了。
subplot九宫格
这个也是必会的基础操作,上代码
subplot(331),imshow(img1)
subplot(332),imshow(rotMat)
subplot(333),imshow(fliMat)
subplot(334),imshow(fliMat2)
subplot(335),imshow(img2)
subplot(336),imshow(daoguolai)
subplot(337),imshow(jiangxiang)
subplot(338),imshow(sanjiao)
subplot(339),imshow(img3)
初入matlab ,分享共勉 ,不好的地方欢迎指正。