Re: [問題] 可否加速算出矩陣內每列間的距離已回收
請改使用
repmat
reshape
不然你不是等到老
就是等不完
※ 引述《chming (...)》之銘言:
: mask = zeros(M, N);
: TH = 0.007; % 兩列之間距離的門檻值
: for j = 1:1:56000-1
: for jj = 2:1:56000
: %算出兩列之間的距離 (每一列的前兩行為x與y的座標,因此不列入計算)
: D = sqrt(sum((feature(j, 3:end)-feature(jj, 3:end)).^2));
: if D <= TH
: % 將小於門檻值的兩個區塊都設為1
: mask(feature(j, 1):feature(j, 1)+blksize-1,...
: feature(j, 2):feature(j, 2)+blksize-1) = 1;
: mask(feature(jj, 1):feature(jj, 1)+blksize-1,...
: feature(jj, 2):feature(jj, 2)+blksize-1) = 1;
: end
: end
: end
: imshow(uint8(im.*mask));
: 程式說明:
: 我要找出一張圖相同的部分。先算出每個區塊的特徵值後(blksize為區塊大小),
: 將所有特徵值放入feature的矩陣中(56000*20,其中列是56000表示有56000個區
: 塊,每列的第一行與第二行存放該區塊最左上角的座標值x與y,第三行到最後一
: 行存放18個特徵值),mask大小與測試圖片相同,初始值皆為0,若兩區塊特徵的
: 距離小於門檻值,則將該區塊所有像素設為1,完成後再將mask與原圖相乘,則
: 只會顯示出該測試圖片相同的部分。
: 不知道依照我的想法,這樣撰寫程式對不對?若可以這樣寫,該如何增快此程式
: 運算的速度呢?這麼大的矩陣每一列每一列去運算,已經花了很多時間在等待上
: ,而且我不只有一張圖要測試,請高手救救我一下,該怎麼去修正我的程式。
: 感謝各位幫助~謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.50.10
推
07/23 14:27, , 1F
07/23 14:27, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章