Matlab图像九宫格基本操作(翻转,镜像等)+位图操作

这次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 ,分享共勉 ,不好的地方欢迎指正。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在MATLAB的GUI界面中,可以通过图像处理工具箱中的函数来实现图像翻转、平移等操作。下面将介绍几种常用的图像处理函数。 首先是图像翻转MATLAB提供了两种翻转操作:左右翻转和上下翻转。可以使用`fliplr`函数来实现左右翻转,使用`flipud`函数来实现上下翻转。例如,对于一个名为`img`的图像,可以使用以下代码进行左右翻转操作: `img = fliplr(img);`,或者使用以下代码进行上下翻转操作:`img = flipud(img);`。 其次是图像平移。在MATLAB中,可以使用`imtranslate`函数实现平移操作。该函数可以将图像沿x轴和y轴方向进行平移。例如,对于一个名为`img`的图像,可以使用以下代码将图像沿x轴方向平移10个像素,沿y轴方向平移20个像素: `img = imtranslate(img, [10, 20]);`。 此外,还可以通过图像处理工具箱中的其他函数实现更加复杂的图像操作,如旋转、缩放等。对于复杂的图像处理需求,可以使用图像处理工具箱提供的各种函数进行处理。 在MATLAB的GUI界面中,可以使用按钮、滑动条等控件来控制图像翻转、平移等操作。通过添加相应的GUI控件,并编写相应的回调函数,即可实现对图像翻转、平移等操作进行控制。 总之,MATLAB提供了丰富的图像处理函数和工具,通过这些函数和工具,可以在GUI界面中实现对图像翻转、平移等操作。同时,可以结合GUI控件进行交互式操作,增强用户体验。 ### 回答2: 在MATLAB GUI界面中进行图像翻转、平移等操作可以通过以下步骤实现。 首先,需要在GUI界面上添加一些用于控制操作的相关控件。可以使用MATLAB的图形用户界面设计器来直接在界面上添加按钮、滑块或者文本框等控件。例如,可以添加两个按钮和一个滑块,分别用来实现翻转、平移操作和调整参数。可以给按钮添加点击事件的回调函数,并设置滑块的滑动事件的回调函数。 接下来,在回调函数中编写具体的图像操作代码。可以使用MATLAB中的imread函数读取图像,然后使用imflip函数实现图像翻转操作,使用imtranslate函数实现图像的平移操作。在执行这些操作之前,可以使用imresize函数调整图像的大小,以适应GUI界面上显示图像的控件。 在翻转操作的回调函数中,可以使用get函数获取滑块的值,根据用户选择的翻转方向进行对应的操作,然后使用imshow函数将翻转后的图像显示在GUI界面上的图像控件中。 在平移操作的回调函数中,同样可以使用get函数获取滑块的值,根据用户选择的平移方向进行对应的操作,并对平移距离进行缩放,然后使用imshow函数显示平移后的图像。 最后,可以将GUI界面上的其他控件设置为适当的初始值,例如滑块的初始值和范围,以便用户进行操作。 通过上述步骤,就可以在MATLAB GUI界面上实现图像翻转、平移等操作。用户可以通过点击按钮或者拖动滑块来进行操作,然后在GUI界面上即时显示操作后的图像。 ### 回答3: MATLAB的GUI界面设计可以通过编写代码来实现图像翻转、平移等操作。首先,需要创建一个GUI界面并添加按钮或菜单栏等交互组件。然后,通过与这些组件关联的回调函数来实现相应的图像处理操作。 对于图像翻转,可以利用MATLAB自带的函数`fliplr`和`flipud`来实现水平翻转和垂直翻转。在回调函数中,通过获取图像数据并调用相应的翻转函数即可实现图像翻转操作。最后将处理后的图像显示在GUI界面中。 例如,可以在GUI界面上添加一个按钮,并设置其回调函数为如下代码: ```matlab function flipImageCallback(hObject, eventdata, handles) % 获取当前显示的图像数据 image_data = get(handles.image_display, 'CData'); % 进行水平翻转 flipped_image = fliplr(image_data); % 在GUI界面中显示翻转后的图像 axes(handles.image_display); imshow(flipped_image); end ``` 对于图像的平移,可以通过自定义平移矩阵来实现。在回调函数中,通过获取图像数据并将平移矩阵应用到图像数据上即可实现图像的平移操作。最后将处理后的图像显示在GUI界面中。 例如,可以在GUI界面上添加一个按钮,并设置其回调函数为如下代码: ```matlab function translateImageCallback(hObject, eventdata, handles) % 获取当前显示的图像数据 image_data = get(handles.image_display, 'CData'); % 设置平移矩阵 translate_matrix = [1 0 50; 0 1 -30; 0 0 1]; % 水平平移50个像素,垂直平移30个像素 % 应用平移矩阵到图像数据上 translated_image = imwarp(image_data, affine2d(translate_matrix)); % 在GUI界面中显示平移后的图像 axes(handles.image_display); imshow(translated_image); end ``` 通过编写类似上述的回调函数,并与GUI界面中的按钮或菜单栏等交互组件关联,就可以实现图像翻转、平移等操作

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值