Using multiple algorithm specs with filters in findfeatures does not work as expected
The Scharr and Sobel filters now consume more memory during calculation. This should only impact processing of very large images. Matching a dozen 1024x1024 images will require about 12 more megaBytes of memory.
Using multiple algorithm spec with filters results in degradation of output after the first algorithm spec. All aglorithm specs share image data and the filters appear to be modifying that image data. Initial tests with the FAST detector and the Sobel filter show that different numbers of keypoints are detected when the same algorithm spec is repeated in the same run of findfeatures.
Using Sobel filter with the algospecfile:
fast/brief fast/brief fast/brief fast/brief fast/brief fast/brief fast/brief fast/brief fast/brief fast/brief
results in the following number of keypoints detected in a Messenger image pair:
Total Query keypoints: 58551  Total Query keypoints: 47072  Total Query keypoints: 38544  Total Query keypoints: 31882  Total Query keypoints: 26140  Total Query keypoints: 21431  Total Query keypoints: 17466  Total Query keypoints: 14250  Total Query keypoints: 11595  Total Query keypoints: 9599 
#5 Updated by Jesse Mapel 8 months ago
- Status changed from In Progress to Resolved
- Impact updated (diff)
Upon further investigation this ticket was being caused by the Scharr and Sobel filters erroneously applying a Guassian blur to the image data that was not being reset. Several warnings have been added to the code around image transformations to be careful with OpenCV matrices.
#7 Updated by Jesse Mapel 8 months ago
I've copied a algorithm specification file to the m04904 directory that can be used for testing. It has the same fast/brief algorithm set repeated several times. I tested with two images,
/work/projects/messenger/Lev1/2011112/EW0211981114G.lev1.cub as the query, match image and
/work/projects/messenger/Lev1/2012275/EW0257563816G.lev1.cub as the train, from, image. The images have different resolutions, so the
fastgeom parameter needs to be set to true in order for the fast/brief algorithm set to work well.