void ProjectionFinder::set_projections(const em2d::Images &projections) { IMP_LOG_TERSE("ProjectionFinder: Setting projections" << std::endl); if(projections.size()==0) { IMP_THROW("Passing empty set of projections",ValueException); } if(polar_params_.get_is_setup() == false) { polar_params_.setup(projections[0]->get_data().rows, projections[0]->get_data().cols); polar_params_.set_estimated_number_of_angles( projections[0]->get_header().get_number_of_columns()); polar_params_.create_maps_for_resampling(); } projections_.resize(projections.size()); unsigned int n_projections = projections_.size(); PROJECTIONS_POLAR_AUTOC_.clear(); PROJECTIONS_POLAR_AUTOC_.resize(n_projections); projections_cog_.resize(n_projections); boost::timer preprocessing_timer; for (unsigned int i = 0; i < n_projections; ++i) { projections_[i] = projections[i]; // does not copy std::ostringstream oss; oss << "Projection" << i; projections_[i]->set_name(oss.str()); do_preprocess_projection(i); } preprocessing_time_ = preprocessing_timer.elapsed(); IMP_LOG_TERSE("ProjectionFinder: Projections set: " << projections_.size() << std::endl); }
void ProjectionFinder::set_subjects(const em2d::Images &subjects) { IMP_LOG_TERSE("ProjectionFinder: Setting subject images" << std::endl); if (subjects.size() == 0) { IMP_THROW("Passing empty set of subjects", ValueException); } if (polar_params_.get_is_setup() == false) { polar_params_.setup(subjects[0]->get_data().rows, subjects[0]->get_data().cols); polar_params_.set_estimated_number_of_angles( subjects[0]->get_header().get_number_of_columns()); polar_params_.create_maps_for_resampling(); } boost::timer preprocessing_timer; subjects_.resize(subjects.size()); unsigned int n_subjects = subjects_.size(); registration_results_.clear(); registration_results_.resize(n_subjects); SUBJECTS_.clear(); SUBJECTS_.resize(n_subjects); SUBJECTS_POLAR_AUTOC_.clear(); SUBJECTS_POLAR_AUTOC_.resize(n_subjects); subjects_cog_.resize(n_subjects); for (unsigned int i = 0; i < n_subjects; ++i) { subjects_[i] = subjects[i]; // doesn't not deep copy std::ostringstream oss; oss << "Image subject " << i; subjects_[i]->set_name(oss.str()); subjects_[i]->set_was_used(true); do_preprocess_subject(i); } preprocessing_time_ = preprocessing_timer.elapsed(); IMP_LOG_TERSE("ProjectionFinder: Subject images set" << std::endl); }
void ProjectionFinder::set_variance_images(const em2d::Images &variances) { variances_.resize(variances.size()); unsigned int n_variances = variances_.size(); for (unsigned int i = 0; i < n_variances; ++i) { variances_[i] = variances[i]; // doesn't not deep copy std::ostringstream oss; oss << "Variance subject " << i; variances_[i]->set_name(oss.str()); variances_[i]->set_was_used(true); } }