27 #ifndef MICROGRAPH_AUTOMATIC_PICKING2_H 28 #define MICROGRAPH_AUTOMATIC_PICKING2_H 65 static const int NangSteps=120;
66 int particle_size, particle_radius, filter_num,
proc_prec, NPCA, NRPCA, corr_num;
98 const FileName &model_name=
nullptr,
const std::vector<MDRowSql> &vMicList={});
105 void setSize(
int pSize);
108 void readMic(
const FileName &fn_micrograph,
int keepPrev);
110 void filterBankGenerator();
112 void batchBuildInvariant(
const std::vector<MDRowSql> &MD);
114 void buildInvariant(
const std::vector<MDRowSql> &MD);
115 void extractInvariant();
117 void extractPositiveInvariant();
119 void extractNegativeInvariant();
123 void add2Dataset(
int flagNegPos);
125 void train(
const std::vector<MDRowSql> &MD,
bool corrFlag,
int x,
int y,
int width,
int height);
127 void correction(
const std::vector<MDRowSql> &addedParticlesMD,
const std::vector<MDRowSql> &removedParticlesMD);
129 void add2Dataset(
const MetaData &removedParticlesMD);
131 void saveTrainingSet();
133 int automaticallySelectParticles(
FileName fnmicrograph,
int proc_prec, std::vector<MDRowSql> &md);
135 int automaticWithouThread(
FileName fnmicrograph,
int proc_prec,
const FileName &fn);
137 void saveAutoParticles(
MetaData &md);
139 void saveAutoParticles(std::vector<MDRowSql> &md);
147 void readMicrograph();
164 void polarCorrelation(
const MultidimArray< std::complex< double > > &fourierPolarStack,
168 void applyConvolution(
bool fast);
178 void extractParticle(
const int x,
const int y,
188 void extractNonParticle(std::vector<Particle2> &negativePosition);
195 void extractInvariant(
const FileName &fnInvariantFeat,
205 void extractPositiveInvariant(
const FileName &fnInvariantFeat,
213 void extractNegativeInvariant(
const FileName &fnInvariantFeat,
230 int x,
int y,
int pre);
236 void buildSearchSpace(std::vector<Particle2> &positionArray,
bool fast);
244 void trainSVM(
const FileName &fnModel,
int numClassifier);
251 void trainPCA(
const FileName &fnPositiveFeat);
264 void add2Dataset(
const FileName &fnInvariantFeat,
265 const FileName &fnParticles,
int lable);
276 void normalizeDataset(
int a,
int b);
279 void savePCAModel(
const FileName &fn);
282 void saveTrainingSet(
const FileName &fn_root);
286 void loadTrainingSet(
const FileName &fn_root);
293 void generateTrainSet();
299 void generateFeatVec(
const FileName &fnmicrograph,
int proc_prec, std::vector<Particle2> &positionArray);
304 int readNextMic(
FileName &fnmicrograph);
306 int getParticlesThreshold();
328 bool waitingForResults;
340 void setMicrograph(
const FileName &fnMic,
int proc_prec);
343 void waitForResults();
345 void workOnMicrograph(
const FileName &fnMic,
int proc_prec);
351 void generateFeatures();
AutoParticlePicking2 * picker
MultidimArray< double > labelSet
void read(std::istream &_in, int _vec_size)
FileName fn_model
Model rootname.
SVMClassifier classifier2
MultidimArray< double > positiveParticleStack
std::vector< Particle2 > rejected_particles
MultidimArray< double > pcaRotModel
std::vector< Particle2 > accepted_particles
MultidimArray< double > positiveInvariatnStack
basic_istream< char, std::char_traits< char > > istream
std::vector< Particle2 > negative_candidates
std::vector< Particle2 > positionArray
Image< double > microImagePrev
std::vector< Particle2 > auto_candidates
ProgImageRotationalPCA rotPcaAnalyzer
FileName fn_train
Training coordinates.
std::unique_ptr< AutoParticlePicking2 > autoPicking
friend std::ostream & operator<<(std::ostream &_out, const Particle2 &_p)
PCAMahalanobisAnalyzer pcaAnalyzer
MultidimArray< double > vec
std::vector< MDRowSql > micList
FileName fn_micrograph
Micrograph filename.