24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2839  |  回复: 10

瑶-Kevin

金虫 (小有名气)

[求助] 求助,怎样去掉双重for循环加快程序运行已有4人参与

各位虫友,小弟刚接触matlab,做毕业设计中,写了一段程序,要对图像进行两两比较,由于图像太多,使用的算法太慢,却又不知道怎样精简,求大神赐教。。。help me。我的程序如下:
clear all;close all;
L=250;
NCC=zeros(L,L);
images1=[];
images2=[];
tic
for i=1:250;
    for j=1:250;
        name1=strcat('F:\bishe\56f\RUN1\',num2str(i),'.bmp');
        name2=strcat('F:\bishe\56f\RUN1\',num2str(j),'.bmp');
        I1=imread(name1);
        I2=imread(name2);
        images1{i}=I1;
        images2{j}=I2;
       N=ncc1(I1,I2);
        NCC(i,j)=N;
    end
end
toc
D=(1-NCC)*256
colormap(gray);
image(D);
回复此楼
只有偏执狂才能生存!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
就你这个需求,本身就是两两比较,似乎没有更好的办法
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2014-04-11 20:21:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mayo2010

铁虫 (小有名气)

除非用fpga并行比较

[ 发自小木虫客户端 ]
术业有专攻。
3楼2014-04-11 22:14:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluebloodgjs

木虫 (正式写手)

资深学渣,预备码农

【答案】应助回帖

感谢参与,应助指数 +1
matlab本来就慢,能用就行了,这不是追求效率的时候
永远相信,美好的事情即将发生。
4楼2014-04-12 16:07:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瑶-Kevin

金虫 (小有名气)

引用回帖:
3楼: Originally posted by mayo2010 at 2014-04-11 22:14:22
除非用fpga并行比较

能教教我怎么用fpga并行处理这个问题吗?
只有偏执狂才能生存!
5楼2014-04-12 19:12:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瑶-Kevin

金虫 (小有名气)

引用回帖:
4楼: Originally posted by bluebloodgjs at 2014-04-12 16:07:23
matlab本来就慢,能用就行了,这不是追求效率的时候

额,问题是数据一大,结果出不来,并不是能用就行
只有偏执狂才能生存!
6楼2014-04-12 19:13:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

瑶-Kevin

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2014-04-11 20:21:34
就你这个需求,本身就是两两比较,似乎没有更好的办法

不是吧,我觉得肯定会有能够做到两两比较而且速度很快的算法的,可惜我刚学实在是不知道怎么解决
只有偏执狂才能生存!
7楼2014-04-12 19:14:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluebloodgjs

木虫 (正式写手)

资深学渣,预备码农

引用回帖:
6楼: Originally posted by 瑶-Kevin at 2014-04-12 19:13:13
额,问题是数据一大,结果出不来,并不是能用就行...

要是图像多的话……你可以多开几个matlab。。。我弄视频编码的……跑程序都是十几个小时

[ 发自小木虫客户端 ]
永远相信,美好的事情即将发生。
8楼2014-04-12 23:32:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
7楼: Originally posted by 瑶-Kevin at 2014-04-12 19:14:03
不是吧,我觉得肯定会有能够做到两两比较而且速度很快的算法的,可惜我刚学实在是不知道怎么解决...

看你的ncc1这个函数是怎么弄的,如果是取特征比较,可以先hash,然后比较就是查值,很快
如果的确需要两两作差,貌似没有什么办法.你把全部图像读到2个矩阵,然后向量化,不见得比循环快,还得内存够大
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
9楼2014-04-13 21:18:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cjc5367

铁虫 (小有名气)

【答案】应助回帖

你这算法设计的有问题,你这比较了250*250次,看你的文件名比较125*249次就可以吧,而且内循环每次都往内存读取两个图形文件,时间增多了,可以减少一些不必要的时间
10楼2014-04-14 16:41:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 瑶-Kevin 的主题更新
信息提示
请填处理意见