[問題] 可否加速算出矩陣內每列間的距離已回收
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: 58.114.82.28
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章