用matlab截取图像的一部分?

1.读入给定四幅图像并正确显示;2.分别截取四幅图像中一部分正确显示已经给定了四幅图像,分别是JPG,gif,PNG等格式,1我会,请问2怎么截图,好像要涉及坐标。请问那... 1.读入给定四幅图像并正确显示;
2.分别截取四幅图像中一部分正确显示

已经给定了四幅图像,分别是JPG,gif,PNG等格式,1我会,请问2怎么截图,好像要涉及坐标。请问那个函数能比较简单的截图?请写下完整程序,谢啦~
展开
 我来答
游戏放松小助手
高粉答主

2020-04-17 · 我是游戏小达人,乐于助人
游戏放松小助手
采纳数:32 获赞数:76732

向TA提问 私信TA
展开全部

1、首先打开matlab,在命令行窗口中输入a=[1 5 6 7;8 12 14 16;6 3 5 7],创建一个3行4列的a矩阵,如下图所示。

2、输入x=find(a>10),找到a数组中大于10的元素的下标,如下图所示。

3、按回车键之后,可以看到找到大于10的元素下标,下标位置是按一列开始数,一列一列数的。

4、输入a(x)=[],将a数组中大于10的元素全部删除,如下图所示。

5、最后按回车键之后,可以看到a数组大于10的元素全部删除了,如下图所示。

tianxiawulang
推荐于2017-11-25 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2313万
展开全部
% 由于读入图像的方法你已经掌握,所以这里只示范怎样截取图像的部分
% 需要说明的主要有以下几点:
% 1、图像数据有索引色和真彩色这两种不同格式,截取前需要搞清楚是哪一种;
% 2、截取图像实际上就是取出数组的部分;
% 3、数组第一维为高度方向(从上到下),第二维为宽度方向(从左向右)。

% 载入MATLAB系统自带图像数据
load durer X map

% 显示原图像
subplot(1,2,1)
image(X)
colormap(map)
axis off; axis image
title('原图')

% 原图像为索引色,这个示范截取其右上角(宽度1/2,高度1/3)
subplot(2,2,2)
w = size(X,2); h=size(X, 1);
image( X(1:fix(h/3), fix(w/2):end) )
axis off; axis image
title('右上角(宽1/2,高1/3)')

% 下面示范示范截取真彩图
% 首先把索引色图像转换为真彩色,然后截取左下角(宽度1/3,高度1/2)
subplot(2,2,4)
rgb = ind2rgb(X, map);
w = size(rgb,2); h = size(rgb,1);
image( rgb(fix(h/2):end, 1:fix(w/3), :) )
axis off; axis image
title('左下角(宽1/3,高1/2)')
更多追问追答
追问
谢谢您了,你前面回答很好。就是有一个问题,有一幅图像是gif,彩色的,但我
a=imread(‘sst.gif’); %sst是图像名称%
imshow(a)
之后,本来是彩色的图片显示出来后的figure却是黑白的,老师说还要调用map色板,可我不知道语法,能否说一下?

还没问完,我发到你私信里了,我提高悬赏到70分了,就选你为正确答案了。请帮忙回答,多谢la~
追答
首先,你读取gif图像的方法有问题。因gif是索引色图像,所以读图像的时候仅仅读图像数据是不够的,还要带上调色板信息。至于怎样用调色板,前面其实已经示范过。

你的程序可以改成:
[a,map]=imread(‘sst.gif’); %sst是图像名称%
image(a)
colormap(map)

但这样有个问题:map是针对整个figure而非axes的,如果你有多个gif图要在同一个窗口里面显示,使用哪个图的map?事实上,使用哪个map都不合适。

这个问题怎么解决呢?其实上次也已经给了你解决的办法——使用ind2rgb把索引图转换成真彩图,真彩图的图像数据已经包含了完整的信息,和map无关。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式