CSci 6971: Image Registration Lecture 15: Data Structures & Other RGRL Features March 5, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck.

Slides:



Advertisements
Similar presentations
Introduction to Computer Science 2 Lecture 7: Extended binary trees
Advertisements

CSE Lecture 3 – Algorithms I
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Algorithms Analysis Lecture 6 Quicksort. Quick Sort Divide and Conquer.
I/O-Algorithms Lars Arge Fall 2014 September 25, 2014.
CSci 6971: Image Registration Lecture 14 Distances and Least Squares March 2, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Quick Review of Apr 10 material B+-Tree File Organization –similar to B+-tree index –leaf nodes store records, not pointers to records stored in an original.
Data Structures Using C++ 2E
What we learn with pleasure we never forget. Alfred Mercier Smitha N Pai.
Searching on Multi-Dimensional Data
B+-Trees (PART 1) What is a B+ tree? Why B+ trees? Searching a B+ tree
Chapter 9: Searching, Sorting, and Algorithm Analysis
Quick Sort, Shell Sort, Counting Sort, Radix Sort AND Bucket Sort
Searching Kruse and Ryba Ch and 9.6. Problem: Search We are given a list of records. Each record has an associated key. Give efficient algorithm.
FALL 2004CENG 351 Data Management and File Structures1 External Sorting Reference: Chapter 8.
CSci 6971: Image Registration Lecture 4: First Examples January 23, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
I/O-Algorithms Lars Arge Spring 2009 March 3, 2009.
FALL 2006CENG 351 Data Management and File Structures1 External Sorting.
Tirgul 8 Universal Hashing Remarks on Programming Exercise 1 Solution to question 2 in theoretical homework 2.
Quick Review of Apr 15 material Overflow –definition, why it happens –solutions: chaining, double hashing Hash file performance –loading factor –search.
Spatial Indexing I Point Access Methods.
Algorithm Efficiency and Sorting
CSci 6971: Image Registration Lecture 13: Robust Estimation February 27, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI.
Homework #3 Due Thursday, April 17 Problems: –Chapter 11: 11.6, –Chapter 12: 12.1, 12.2, 12.3, 12.4, 12.5, 12.7.
Spatial Indexing I Point Access Methods. Spatial Indexing Point Access Methods (PAMs) vs Spatial Access Methods (SAMs) PAM: index only point data Hierarchical.
Spatial Indexing I Point Access Methods. Spatial Indexing Point Access Methods (PAMs) vs Spatial Access Methods (SAMs) PAM: index only point data Hierarchical.
CSci 6971: Image Registration Lecture 5: Feature-Base Regisration January 27, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 9 Searching.
CSci 6971: Image Registration Lecture 16: View-Based Registration March 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Chapter 61 Chapter 6 Index Structures for Files. Chapter 62 Indexes Indexes are additional auxiliary access structures with typically provide either faster.
Indexing. Goals: Store large files Support multiple search keys Support efficient insert, delete, and range queries.
Comp 249 Programming Methodology Chapter 15 Linked Data Structure - Part B Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia.
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Spatial Data Management Chapter 28. Types of Spatial Data Point Data –Points in a multidimensional space E.g., Raster data such as satellite imagery,
1 Chapter 24 Developing Efficient Algorithms. 2 Executing Time Suppose two algorithms perform the same task such as search (linear search vs. binary search)
CHAPTER 09 Compiled by: Dr. Mohammad Omar Alhawarat Sorting & Searching.
Project 2 Presentation & Demo Course: Distributed Systems By Pooja Singhal 11/22/
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 19: Searching and Sorting Algorithms.
SEARCHING UNIT II. Divide and Conquer The most well known algorithm design strategy: 1. Divide instance of problem into two or more smaller instances.
IT253: Computer Organization Lecture 3: Memory and Bit Operations Tonga Institute of Higher Education.
Chapter 13 Recursion. Learning Objectives Recursive void Functions – Tracing recursive calls – Infinite recursion, overflows Recursive Functions that.
C++ Programming: From Problem Analysis to Program Design, Second Edition Chapter 19: Searching and Sorting.
Hashing Chapter 20. Hash Table A hash table is a data structure that allows fast find, insert, and delete operations (most of the time). The simplest.
DATA STRUCTURE & ALGORITHMS (BCS 1223) CHAPTER 8 : SEARCHING.
METU Department of Computer Eng Ceng 302 Introduction to DBMS Indexing Structures for Files by Pinar Senkul resources: mostly froom Elmasri, Navathe and.
Data Structures Week 8 Further Data Structures The story so far  Saw some fundamental operations as well as advanced operations on arrays, stacks, and.
12.1 Chapter 12: Indexing and Hashing Spring 2009 Sections , , Problems , 12.7, 12.8, 12.13, 12.15,
Sorting. Pseudocode of Insertion Sort Insertion Sort To sort array A[0..n-1], sort A[0..n-2] recursively and then insert A[n-1] in its proper place among.
CSC 211 Data Structures Lecture 13
Chapter 5: Hashing Part I - Hash Tables. Hashing  What is Hashing?  Direct Access Tables  Hash Tables 2.
Chapter 18: Searching and Sorting Algorithms. Objectives In this chapter, you will: Learn the various search algorithms Implement sequential and binary.
1 Multi-Level Indexing and B-Trees. 2 Statement of the Problem When indexes grow too large they have to be stored on secondary storage. However, there.
CPSC 252 Hashing Page 1 Hashing We have already seen that we can search for a key item in an array using either linear or binary search. It would be better.
Multi-dimensional Search Trees CS302 Data Structures Modified from Dr George Bebis.
1 CSCD 326 Data Structures I Hashing. 2 Hashing Background Goal: provide a constant time complexity method of searching for stored data The best traditional.
Lecture 9COMPSCI.220.FS.T Lower Bound for Sorting Complexity Each algorithm that sorts by comparing only pairs of elements must use at least 
1. Searching The basic characteristics of any searching algorithm is that searching should be efficient, it should have less number of computations involved.
Searching Topics Sequential Search Binary Search.
Chapter 4, Part II Sorting Algorithms. 2 Heap Details A heap is a tree structure where for each subtree the value stored at the root is larger than all.
Searching CSE 103 Lecture 20 Wednesday, October 16, 2002 prepared by Doug Hogan.
Chapter 15 Running Time Analysis. Topics Orders of Magnitude and Big-Oh Notation Running Time Analysis of Algorithms –Counting Statements –Evaluating.
Prof. Amr Goneid, AUC1 CSCI 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 5. Dictionaries(2): Hash Tables.
Spatial Data Management
School of Computing Clemson University Fall, 2012
Computational Geometry
Spatial Indexing I Point Access Methods.
Mean Shift Segmentation
Craig Schroeder October 26, 2004
Searching CLRS, Sections 9.1 – 9.3.
Database Design and Programming
Presentation transcript:

CSci 6971: Image Registration Lecture 15: Data Structures & Other RGRL Features March 5, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware

Image RegistrationLecture 15 2 Assignments Available  HW 7  Programming project  HW 7  Programming project

Image RegistrationLecture 15 3 Outline  Review the basic toolkit components  Spatial data structures  Range data example  Other toolkit topics:  ROI  Initializer  Multiple stages (multiresolution)  Multiple feature types  Looking ahead to the rest of the semester  Review the basic toolkit components  Spatial data structures  Range data example  Other toolkit topics:  ROI  Initializer  Multiple stages (multiresolution)  Multiple feature types  Looking ahead to the rest of the semester

Image RegistrationLecture 15 4 Basic Components  rgrl_feature  rgrl_feature_set  rgrl_scale  rgrl_match_set  rgrl_data_manager  rgrl_transformation  rgrl_converge_status  rgrl_feature  rgrl_feature_set  rgrl_scale  rgrl_match_set  rgrl_data_manager  rgrl_transformation  rgrl_converge_status  rgrl_matcher  rgrl_weighter  rgrl_scale_estimator  rgrl_estimator  rgrl_convergence_tester  rgrl_feature_based_registration Representation objectsCompute objects

Image RegistrationLecture 15 5 Basic Loop  Input the moving and fixed feature sets and an initial estimate  Specify scale estimator, weighter, matcher and estimator  Loop  Compute matches (rgrl_matcher)  Estimate scale  Run IRLS with fixed scale  Re-estimate scale  Until converged  Input the moving and fixed feature sets and an initial estimate  Specify scale estimator, weighter, matcher and estimator  Loop  Compute matches (rgrl_matcher)  Estimate scale  Run IRLS with fixed scale  Re-estimate scale  Until converged

Image RegistrationLecture 15 6 Variations and Generalizations  Mixes of feature types  Multiple stages (resolutions)  Multiple initial estimates  View-based registration (after break)  Mixes of feature types  Multiple stages (resolutions)  Multiple initial estimates  View-based registration (after break)

Image RegistrationLecture 15 7 Spatial Data Structures  rgrl_feature_set includes 3 search member functions:  nearest_feature  features_within_distance  k_nearest_features  Naïve implementations of these functions would require O(N) search time for each “query”  Thus, we need spatial data structures to make these queries efficient. Three are used (vxl_src/contrib/rsdl)  Binning data structures (rsdl_bins and rsdl_bins_2d)  Digital distance maps (rsdl_borgefors)  K-d trees (rsdl_kd_tree)  rgrl_feature_set includes 3 search member functions:  nearest_feature  features_within_distance  k_nearest_features  Naïve implementations of these functions would require O(N) search time for each “query”  Thus, we need spatial data structures to make these queries efficient. Three are used (vxl_src/contrib/rsdl)  Binning data structures (rsdl_bins and rsdl_bins_2d)  Digital distance maps (rsdl_borgefors)  K-d trees (rsdl_kd_tree)

Image RegistrationLecture 15 8 Binning Data Structures  Divide rectangular region into rectangular bins  This is really just a coarse array  Feature point locations and associated values are stored in a list associated with the bin the location falls into  Region searches:  Conducted by examining all bins that intersect the query region  Nearest neighbor searches:  Spiral search starting at the bin containing the query point.  Divide rectangular region into rectangular bins  This is really just a coarse array  Feature point locations and associated values are stored in a list associated with the bin the location falls into  Region searches:  Conducted by examining all bins that intersect the query region  Nearest neighbor searches:  Spiral search starting at the bin containing the query point.

Image RegistrationLecture 15 9 Binning Data Structures  Advantages:  Simple and flexible  Insertions, queries and deletions are, on average, quite fast for sparse, scattered queries  Disadvantages:  Works poorly for clustered data  Advantages:  Simple and flexible  Insertions, queries and deletions are, on average, quite fast for sparse, scattered queries  Disadvantages:  Works poorly for clustered data

Image RegistrationLecture Digital Distance Maps  Given:  Feature points organized as points along a series of contours  At each pixel in the image record:  Pointer to closet feature point  Distance to this feature point  Given:  Feature points organized as points along a series of contours  At each pixel in the image record:  Pointer to closet feature point  Distance to this feature point

Image RegistrationLecture Digital Distance Maps  Computed in time proportional to the area of the image using digital distance approximations  Works well only with static data  Once the map is computed, only O(1) time is required to find the nearest point on the contour at each pixel  Computed in time proportional to the area of the image using digital distance approximations  Works well only with static data  Once the map is computed, only O(1) time is required to find the nearest point on the contour at each pixel

Image RegistrationLecture k-d Tree  Multi-dimensional analog to a binary search tree  Partions region and partions data  Recursive tree construction  Example shown in 2d  At each node of the tree  Find the dimension x or y, across which the data is most widely spread  Say this is x  Find value of x, call it x m such that half the points have x values less than x.  Partition the data, assigning points with x < xm to the left subtree and the remaining points to the right  Continue down the tree until each node has fewer than a small constant number of points  Multi-dimensional analog to a binary search tree  Partions region and partions data  Recursive tree construction  Example shown in 2d  At each node of the tree  Find the dimension x or y, across which the data is most widely spread  Say this is x  Find value of x, call it x m such that half the points have x values less than x.  Partition the data, assigning points with x < xm to the left subtree and the remaining points to the right  Continue down the tree until each node has fewer than a small constant number of points Solid line shows root split Dashed line shows 1st level splits Dotted line shows 2nd level splits

Image RegistrationLecture k-d Tree Search  Region:  Recurse down the tree  At nodes completely contained inside the query region, gather all points  At nodes completely outside the query region, end this branch of the search  At nodes partially inside the query region, continue down each branch of the tree  c points nearest to a query point  Go down the tree until node is found containing the query point  Gather points, sorting them  Proceed back up (and perhaps down) the tree, gathering and inserting points until the nodes that must be added are further from the query than the current c-th point  Region:  Recurse down the tree  At nodes completely contained inside the query region, gather all points  At nodes completely outside the query region, end this branch of the search  At nodes partially inside the query region, continue down each branch of the tree  c points nearest to a query point  Go down the tree until node is found containing the query point  Gather points, sorting them  Proceed back up (and perhaps down) the tree, gathering and inserting points until the nodes that must be added are further from the query than the current c-th point

Image RegistrationLecture k-d Tree Discussion  Construction requires O(N log N) worst-case time and space  Queries require O(log n + c) on average, where c is the number of points “reported” (returned)  Worst-case is linear, but this does not happen in practice  Designed for static data, but can handle a small number of insertions and deletions  Construction requires O(N log N) worst-case time and space  Queries require O(log n + c) on average, where c is the number of points “reported” (returned)  Worst-case is linear, but this does not happen in practice  Designed for static data, but can handle a small number of insertions and deletions

Image RegistrationLecture Spatial Data Structures: Summary  rsdl_bins and rsdl_bins_2d  Cache dynamic spatial information  Can’t handle cluttering  rsdl_borgefors  Represent static set of 2d edge or contour points  O(1) access  rsdl_kd_tree  Multi-dimensional version of binary search tree  Static structure  Fast average case access, but slow worst-case  Potential research paper topic:  Data structures for registration  rsdl_bins and rsdl_bins_2d  Cache dynamic spatial information  Can’t handle cluttering  rsdl_borgefors  Represent static set of 2d edge or contour points  O(1) access  rsdl_kd_tree  Multi-dimensional version of binary search tree  Static structure  Fast average case access, but slow worst-case  Potential research paper topic:  Data structures for registration

Image RegistrationLecture Range Data Example  The famous Stanford Bunny  Points stored in k-d tree  Surface normals calculated by finding the c nearest points to each data point and fitting a planar surface  The famous Stanford Bunny  Points stored in k-d tree  Surface normals calculated by finding the c nearest points to each data point and fitting a planar surface

Image RegistrationLecture Animation

Image RegistrationLecture Advanced Properties of RGRL  Straightforward stuff (conceptually, at least)  Regions of Interest (ROIs) and masks  Initializers  Multiple stages  Multiple feature types  Feature extraction  More complicated stuff for after break  Initialization techniques  View-based registration  Straightforward stuff (conceptually, at least)  Regions of Interest (ROIs) and masks  Initializers  Multiple stages  Multiple feature types  Feature extraction  More complicated stuff for after break  Initialization techniques  View-based registration

Image RegistrationLecture ROIs and Masks  Mask (rgrl_mask):  Used to indicate which pixels in an image are currently “active” and to be used in an operation  In particular, you may want to register sections of images rather than entire images.  Subclasses implement:  Binary image mask  Rectilinear mask  Circular / spherical masks  ROI (rgrl_roi):  Rectangular region of interest or bounding box  Can be changed after being constructed  At some point these two should be combined  Mask (rgrl_mask):  Used to indicate which pixels in an image are currently “active” and to be used in an operation  In particular, you may want to register sections of images rather than entire images.  Subclasses implement:  Binary image mask  Rectilinear mask  Circular / spherical masks  ROI (rgrl_roi):  Rectangular region of interest or bounding box  Can be changed after being constructed  At some point these two should be combined

Image RegistrationLecture Initializer (rgrl_initializer)  Provide initial information to the registration engines, including ROIs, estimator, initial estimates and initial scale  In examples thus far this information has been provided to the registration engine “by hand”  Provide multiple initial estimates  Test different initial estimates in attempt to obtain global convergence  Lectures 18 and 19 will discuss initialization techniques  Provide initial information to the registration engines, including ROIs, estimator, initial estimates and initial scale  In examples thus far this information has been provided to the registration engine “by hand”  Provide multiple initial estimates  Test different initial estimates in attempt to obtain global convergence  Lectures 18 and 19 will discuss initialization techniques

Image RegistrationLecture Multiple Stages  Thus far we’ve assumed registration has had a single stage  Although you might have used multiple stages in your solution to HW 6, Question 4  Registration can proceed in multiple stages, however.  The solution to the registration problem at each stage is used to initialize registration at the next stage  Each stage contains  Moving and fixed feature sets  Matcher  Weighter  Xform estimators  Thus far we’ve assumed registration has had a single stage  Although you might have used multiple stages in your solution to HW 6, Question 4  Registration can proceed in multiple stages, however.  The solution to the registration problem at each stage is used to initialize registration at the next stage  Each stage contains  Moving and fixed feature sets  Matcher  Weighter  Xform estimators

Image RegistrationLecture Multiple Stages (continued)  Information on stages need only be specified by  Constructing rgrl_data_manager with the single argument true  Calling rgrl_data_manager::add_data for each stage, with stages indexed by 0, 1, etc.  The registration engine (rgrl_feature_based_registration) handles multiple stages automatically by receiving the initial stage index as an argument  Either from the initializer or directly to the run member function  The registration functions count down until stage 0 has completed  Information on stages need only be specified by  Constructing rgrl_data_manager with the single argument true  Calling rgrl_data_manager::add_data for each stage, with stages indexed by 0, 1, etc.  The registration engine (rgrl_feature_based_registration) handles multiple stages automatically by receiving the initial stage index as an argument  Either from the initializer or directly to the run member function  The registration functions count down until stage 0 has completed

Image RegistrationLecture Multiple Stages == Multiple Resolutions  Many registration techniques work first on coarser resolutions version of the images, extracting features at each resolution  Intuitively, we can think of resolutions and stages as the same thing  This requires (potentially) scaling the transformation and ROIs between resolutsion  This occurs if the feature-set is in image coordinates  BUT the notion of a stage is more general than resolution.  Many registration techniques work first on coarser resolutions version of the images, extracting features at each resolution  Intuitively, we can think of resolutions and stages as the same thing  This requires (potentially) scaling the transformation and ROIs between resolutsion  This occurs if the feature-set is in image coordinates  BUT the notion of a stage is more general than resolution.

Image RegistrationLecture Example  rgrl/examples/registration3.cxx  Registration of multiresolution (2 resolutions) feature sets from a pair of retinal images  Most of the foregoing discussion is mirrored in this example  rgrl/examples/registration3.cxx  Registration of multiresolution (2 resolutions) feature sets from a pair of retinal images  Most of the foregoing discussion is mirrored in this example

Image RegistrationLecture Example int main( int argc, char* argv[] ) { // …. //read in the feature files // feature_vector moving_fps_high_res; feature_vector moving_fps_low_res; feature_vector fixed_fps_high_res; feature_vector fixed_fps_low_res; const char* fixed_file_name_high_res = argv[1]; const char* fixed_file_name_low_res = argv[2]; const char* moving_file_name_high_res = argv[3]; const char* moving_file_name_low_res = argv[4]; read_feature_file( moving_file_name_high_res, moving_fps_high_res ); read_feature_file( moving_file_name_low_res, moving_fps_low_res ); read_feature_file( fixed_file_name_high_res, fixed_fps_high_res ); read_feature_file( fixed_file_name_low_res, fixed_fps_low_res );

Image RegistrationLecture Example // Prepare feature sets // rgrl_feature_set_sptr moving_feature_set_high_res = new rgrl_feature_set_location (moving_fps_high_res); rgrl_feature_set_sptr moving_feature_set_low_res = new rgrl_feature_set_location (moving_fps_low_res); rgrl_feature_set_sptr fixed_feature_set_high_res = new rgrl_feature_set_location (fixed_fps_high_res); rgrl_feature_set_sptr fixed_feature_set_low_res = new rgrl_feature_set_location (fixed_fps_low_res); // Set the initial transformation to be identity // int dof = 6; //dof for affine model rgrl_transformation_sptr init_trans; vnl_matrix A(2,2,vnl_matrix_identity); vector_2d t(0.0, 0.0); vnl_matrix covariance_matrix( dof, dof, 0.0 ); init_trans = new rgrl_trans_affine(A, t, covariance_matrix);

Image RegistrationLecture Example // We first instantiate the 2 transformation models, and the // initializer for the lower resolution. Please note, the // initializer has to have the knowledge of the resolution level at // which the registration begins. The higher the number is for the // resolution level, the lower the image resolution. The highest // resolution is always at the $0^{th}$ level. // rgrl_estimator_sptr affine_model = new rgrl_est_affine(6, 6); rgrl_estimator_sptr quadratic_model = new rgrl_est_quadratic(12, 12); vector_2d x0(0,0); vector_2d x1(511, 511); rgrl_roi moving_image_region(x0, x1); rgrl_roi fixed_image_region(x0, x1); int initial_resolution = 1; rgrl_initializer_sptr initializer = new rgrl_initializer_prior(moving_image_region, fixed_image_region, affine_model, init_trans, initial_resolution );

Image RegistrationLecture Example // Create matcher // unsigned int k = 1; rgrl_matcher_sptr cp_matcher = new rgrl_matcher_k_nearest( k ); // Robust weighting // vcl_auto_ptr m_est_obj( new rrel_tukey_obj(4) ); rgrl_weighter_sptr wgter = new rgrl_weighter_m_est(m_est_obj, false, false); // Scale estimator both weighted and unweighted // int max_set_size = 3000; vcl_auto_ptr muset_obj( new rrel_muset_obj( max_set_size, false) ); rgrl_scale_estimator_unwgted_sptr unwgted_scale_est; rgrl_scale_estimator_wgted_sptr wgted_scale_est; unwgted_scale_est = new rgrl_scale_est_closest( muset_obj ); wgted_scale_est = new rgrl_scale_est_all_weights();

Image RegistrationLecture Example // Convergence tester // double tolerance = 1.5; rgrl_convergence_tester_sptr conv_test = new rgrl_convergence_on_weighted_error( tolerance );

Image RegistrationLecture Example // We add data and appropriate models to both stages the same way as // we have done in the previous 2 examples. The only new step here // is to specify the transition going from the lower to the higher // resolution using // \code{set\_dimension\_increase\_for\_next\_stage()} method. This // method sets the parameter that allows the internal data to be // scaled properly when moving to the next resolution level. In this // example, since the lower resolution image is half the size for // each dimension of the original, the \code{dimension\_increase} is // set to 2 for the lower resolution. // bool multi_resol = true; rgrl_data_manager_sptr data = new rgrl_data_manager( multi_resol ); int resolution = 0; //original resolution data->add_data( resolution, moving_feature_set_high_res, fixed_feature_set_high_res, cp_matcher, wgter, unwgted_scale_est, wgted_scale_est ); data->add_estimator( resolution, quadratic_model);

Image RegistrationLecture Example resolution = 1; //lower resolution double dimension_increase = 2; data->add_data( resolution, moving_feature_set_low_res, fixed_feature_set_low_res, cp_matcher, wgter, unwgted_scale_est, wgted_scale_est ); data->add_estimator( resolution, affine_model); data->set_dimension_increase_for_next_stage( resolution, dimension_increase);

Image RegistrationLecture Example // Start the registration process // rgrl_feature_based_registration reg( data, conv_test ); reg.run( initializer ); // Output Results // … return 0; }

Image RegistrationLecture Multiple Feature Sets at One Stage  We can also use simultaneous different types of features at a single stage  For example, vascular landmarks and trace points  Each feature set must have a different feature type  The rgrl_data_manager handles multiple feature sets automatically.  The registration objects automatically detect the existence of multiple feature sets:  It requests them from the data manager  It applies matching to them individually  It passes all matches to the estimation objects  We can also use simultaneous different types of features at a single stage  For example, vascular landmarks and trace points  Each feature set must have a different feature type  The rgrl_data_manager handles multiple feature sets automatically.  The registration objects automatically detect the existence of multiple feature sets:  It requests them from the data manager  It applies matching to them individually  It passes all matches to the estimation objects

Image RegistrationLecture Feature Extraction  This far we have discussed little about feature extraction  This is unnecessary for range data  We have good algorithms for feature extraction in retinal images  Algorithms in vxl and itk can also be adapted to extract features  This far we have discussed little about feature extraction  This is unnecessary for range data  We have good algorithms for feature extraction in retinal images  Algorithms in vxl and itk can also be adapted to extract features

Image RegistrationLecture After Break  Lecture 16: View-Based Registration  Lecture 17: Project / software discussion  Come to class prepared to work on projects and discuss the software  Lectures 18-19: Initialization techniques  Lecture 20: Multiresolution  Lecture 21: Mutual information  Lectures 22-24: Video sequences and mosaics  Lectures 25-27: Deformable registration  Lecture 28: Project presentations  Lecture 16: View-Based Registration  Lecture 17: Project / software discussion  Come to class prepared to work on projects and discuss the software  Lectures 18-19: Initialization techniques  Lecture 20: Multiresolution  Lecture 21: Mutual information  Lectures 22-24: Video sequences and mosaics  Lectures 25-27: Deformable registration  Lecture 28: Project presentations