[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libcvd-members] libcvd/cvd tensor_voting.h
From: |
Edward Rosten |
Subject: |
[libcvd-members] libcvd/cvd tensor_voting.h |
Date: |
Tue, 29 Jan 2008 19:14:49 +0000 |
CVSROOT: /cvsroot/libcvd
Module name: libcvd
Changes by: Edward Rosten <edrosten> 08/01/29 19:14:49
Modified files:
cvd : tensor_voting.h
Log message:
Obvious optimization for tensor voting. Used 70% of the time.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/tensor_voting.h?cvsroot=libcvd&r1=1.2&r2=1.3
Patches:
Index: tensor_voting.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/tensor_voting.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- tensor_voting.h 29 Jan 2008 19:04:56 -0000 1.2
+++ tensor_voting.h 29 Jan 2008 19:14:49 -0000 1.3
@@ -107,10 +107,18 @@
Matrix<2>* p = &field[y][x];
+ //The matrices are all symmetric, so only use
the upper right triangle.
for(unsigned int i=0; i < kernel.size(); i++)
- p[kernel[i].first] += kernel[i].second
* scale;
+ {
+ p[kernel[i].first][0][0] +=
kernel[i].second[0][0] * scale;
+ p[kernel[i].first][0][1] +=
kernel[i].second[0][1] * scale;
+ p[kernel[i].first][1][1] +=
kernel[i].second[1][1] * scale;
+ }
}
+ //Copy over bits to make the matrices symmetric
+ for(Image<Matrix<2> >:: iterator i=field.begin(); i !=
field.end(); i++)
+ (*i)[1][0] = (*i)[0][1];
return field;
}