问一下在matlab中如何使用指针数组读入一组图片

作者&投稿:墨羽 (若有异议请与网页底部的电邮联系)
matlab中怎么把图片读进一个数组里~

imread 读入二维数组,然后转置,使用reshape变成一维数组
如: A=imread('test.bmp'); B=reshape (A',1,[])

这个如果图像为jpg格式,那么最好把图像直接命名为1.jpg, 2.jpg, 3.jpg, 4.jpg, ......然后就可以使用如下方式了:
假如有N幅图像,图像路径为 dir 所指定的,在F盘的Image文件夹中。
dir = 'F:\image\';
for i = 1 : N
fn = strcat(dir, int2str(i));
f = imread(strcat(fn, '.jpg'));
......
......
end
这样可以每次读出一个图像存储在数组 f 中。

1、MATLAB中没有指针的概念,你要解决的问题也不需要使用指针。

 

2、使用for循环解决问题,有三种方式逐个处理多文件:

(1)如果文件名顺序编号,可以使用sprintf生成文件名,举例来说,如果你的图片文件的名字是Pic001.jpg-Pic300.jpg,那么就可以用下面的代码:

for i=1:300
    file = sprintf('Pic%03i.jpg', i);
    % 后面对file文件imread,然后做处理即可
end

 

(2)如果不是顺序编号,但位于同一文件夹中(而且文件夹中没有同类型的其它文件),则可以采用下面的做法:

files=dir('Pic*.jpg');
for i=1:length(files)
    file=files(i).name;
    % 后面对file文件imread,然后做处理即可
end

(3)如果前两种条件都不满足,那没办法,你就只能把要处理的文件名写到一个cell数组里,然后逐个处理了。

 

3、关于输出:

一种方式是处理图片得到的结果直接写入文件,没太多可说的;另一种方式是处理每个图片得到一组数据,这种情况下建议把结果保存到一个cell数组中。

 

希望能帮到楼主,有问题请追问。



参照这样的格式for i=1:300    Q(::i)=imread(['m',num2str(i),'.bmp']);end图片名称就是1.bmp、2.bmp.......3.bmp


在MATLAB中,底数e如何表示?
可以通过以下方法在MATLAB中表示e,步骤如下:1、以e为底的指数函数。2、可以验证一下以e为底的指数函数和对数函数表示形式,在命令行窗口中输入log(exp(1)),按回车键,可以看到结果为1,如下图:3、继续在命令行窗口中输入log(exp(2)),按回车键,可以看到结果为2,如下图,可以验证该表达式是...

如何在matlab中找到一个点的坐标?
1、第一步,需要知道matlab数组找到所有接近某个值的点的坐标是使用“find”函数,可以在命令行窗口中输入“help find”,如下图所示,然后进入下一步。2、其次,完成上述步骤后,输入“a =[1 4 5;6 7 8;7 9 12]”,在matlab命令行窗口中创建副本数组,如下图所示,然后进入下一步。3、接着...

如何用Matlab求一元二次方程式解的个数以及解
1、首先打开Matlab软件,点击左上角的New Script按钮,如下图所示 2、接下来在弹出的界面中给新的脚本文件起一个名字,然后进行保存,如下图所示 3、接着我们在脚本文件中用input接收三个输入变量,这三个变量是让用户输入的,如下图所示,他们代表方程式中的a,b,c参数 4、然后我们运用b^2-4ac进行...

用matlab求一元二次方程的根
1、以一元二次方程为:x^2-6*x-12=0,为大家分享一下用matlab求一元二次方程的根的方法。2、在matlab的shu.m文件中输入:s=solve(x^2-6*x-12=0)3、点击运行shu.m文件,如图。4、这样就成功地输出一元二次方程为:x^2-6*x-12=0的两个根:X1= 21^(1\/2) + 3,X2= 3 - 21^...

matlab如何做出动态图
1当我们调用plot()函数时MATLAB会自动生成一个命名为Figure1的窗体,我们想修改它的名字。如下图 2在命令行中输入如下代码 figure('NumberTitle', 'off', 'Name', '晓博基于BP神经网络的xor测试程序');运行代码,结果如下图 3对于窗体中的坐标线和说明文字显示我们加入如下代码 hold on %刷新...

matlab在哪个文件夹下
1、首先第一步是就在matlab的安装文件有一个install.txt的文本文件(一般在crack文件夹里),然后就是打开如图,按着图示的说明进行安装。2、接着就是要在输入序列号的界面,输入insall.txt文件中提供的序列号,点击下一步,选择安装位置,然后进行安装,然后这时候就是单击安装选择lic_standalone,将...

matlab中如何创建一个向量
matlab创建列向量有一下几种办法:已知数据的条件下:假设数据为1 2 3 4 5。1.1 使用‘号转置:1.2 使用;号分割:仅创建,不在意数据的具体值 2.1 使用ones()函数 2.2 使用zeros()函数 拓展:一般创建列向量,就是对行向量进行转置即可,列向量在许多matlab操作中是必要的形式,如神经...

matlab在同一坐标下如何绘制多条曲线
在Matlab中,有多种方法可以在同一坐标轴上绘制多条二维曲线。以下是几种常用的方法:使用plot函数:使用多次plot函数调用来绘制多条曲线。每次调用plot函数时,指定不同的数据点作为曲线的 x 和 y 值。例如:x1 = 0:0.1:2*pi;y1 = sin(x1);x2 = 0:0.1:2*pi;y2 = cos(x2);plot(x1...

matlab怎么求解一元二次方程的方程组啊!
1、首先看一下matlab求解方程的方法,指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。2、来求解sin(x)=1方程,在matlab命令行窗口中输入symsx [x,params,conds]=solve (sin(x)==1,'ReturnConditions', true) ,按回车键可以得到方程解,如下图所示。3、转换一下,可以看到sin...

e的x次方在matlab中如何表示?
1、打开matlab之后,在命令行窗口中直接输入e,按回车键,可以看到显示未定义变量,如下图所示:2、以e为底的指数函数。可以通过 exp(n)表示,如在命令行窗口中输入exp(5)表示e的五次方,如下图所示:3、也可以验证一下以e为底的指数函数和对数函数表示形式,在命令行窗口中输入log(exp(1)),按...

闽清县15667318270: 问一下在matlab中如何使用指针数组读入一组图片 -
和转抗痨: <p>1、MATLAB中没有指针的概念,你要解决的问题也不需要使用指针.</p> <p> </p> <p>2、使用for循环解决问题,有三种方式逐个处理多文件:</p> <p>(1)如果文件名顺序编号,可以使用sprintf生成文件名,举例来说,如果你的图片文件的...

闽清县15667318270: Matlab怎么用原来定义的函数作为参数定义另一个函数 -
和转抗痨: 在c/c++中,可以使用函数指针来实现,在matlab中,使用函数句柄.这时类似于函数指针的一项功能.例如:自定义一个函数如下,这个myfun.m函数是将要当做参数用的.function f=myfun(x) f=x.^2; 你知道这个.m文件要放在哪里才能调用是吧.下面这个函数的参数就是函数:function g=fun(f) g=f(2)+f(3); 然后我在命令窗口输入如下,出现结果:>> f2=@myfun;>> fun(f2) ans =13

闽清县15667318270: Matlab怎么实现C/C++中的指针 -
和转抗痨: 先看一个简单的程序(该程序保存在matlab主目录下名字是mexDemon.cpp,或者在主目录下新建一个.cpp文件):#include "mex.h" //加入头文件,该头文件在VS2010中无法include,但是不影响其在matlab中的编译,反而在matlab编译还需...

闽清县15667318270: matlab 矩阵嵌套[类似C语言中指针矩阵的用法] -
和转抗痨: 你可以建立一个cell类型的数组,三个元素分别用矩阵赋值

闽清县15667318270: Matlab怎么实现C/C++中的指针
和转抗痨: matlab没有指针这一说,除非你利用matlab和C++交互运算,那么整个元算空间都是用指针来实现互访的,但是对于matlab来说,仍然没有指针这个数据结构

闽清县15667318270: Matlab里有没有指针 -
和转抗痨: 由于需要实现树等结构,所以特意查了Matlab里面的指针实现, 在 http://www.ilovematlab.cn/thread-57356-1-1.html 的第7楼发现了,大为吃惊. 特意转录如下: matlab里有指针.比如: x=[1 4 5]; xPtr=libpointer('doublePtr',x); get(xPtr,'value') set(xPtr,'value',[1 2 3;4 5 6]); get(xPtr,'value') 这是我第一次写博客,不足之处,多多见谅. 后来,很可惜得发现,这个指针只支持数值类型.

闽清县15667318270: 怎么用matlab中的mex文件 -
和转抗痨: 程序源文件编译后的文件.相比m文件,mex文件执行速度更快.不能像查看m文件一样查看mex文件,原因是mex文件是二进制文件.

闽清县15667318270: Matlab 如何实现树结构 -
和转抗痨: 由于matlab函数只能传值传递参数的限制,操作起来稍有点不同. 建立初始化链表空间:[L,Maintain]=InitList(N,'a1','a2','a3',......); 例子:现在需要建立一树,每个节点包含数据域,左指针域,和右指针域,估计需要的空间是100[L,...

闽清县15667318270: matlab中如何使用标志数和符号变量 -
和转抗痨: 可以得,使用eval函数,它可以把字符串(char)解释为命令,然后执行.比如你需要循环计算x和y的两个数的加减乘除,如下面的例子.注意,eval函数的输入必需是字符串.x=1; y=2; op=['+' '-' '*' '/'] for i=1:length(op) result(i) = eval(['x' op(i) 'y']); end 结果是 result = 3.0000 -1.0000 2.0000 0.5000

闽清县15667318270: matlab 函数如何像指针那样直接改变实参?
和转抗痨: MATLAB函数都是值传递,不支持地址传递,所以无法像C/C++那样修改实参. 唯一的例外是从handle类派生的类,但那涉及到类的设计,是否适合你的问题请自行斟酌.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网