summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ovision/see
diff options
context:
space:
mode:
authorgaillaro2005-04-09 17:40:06 +0000
committergaillaro2005-04-09 17:40:06 +0000
commit7cc8bf6a4cbd062f5d4f6e2b310cd603ab2c60e1 (patch)
tree7bc2ebf03a3d181f5e343ef648b12991a3a48c6d /2005/i/robert/src/ovision/see
parent294fe97ae1b8e0b8ec341cb31fb7a5d7fd02066a (diff)
qq modifs sur l'interface
Diffstat (limited to '2005/i/robert/src/ovision/see')
-rw-r--r--2005/i/robert/src/ovision/see/Makefile.defs2
-rw-r--r--2005/i/robert/src/ovision/see/oconfig.cc5
-rw-r--r--2005/i/robert/src/ovision/see/segmLearn.cc16
3 files changed, 17 insertions, 6 deletions
diff --git a/2005/i/robert/src/ovision/see/Makefile.defs b/2005/i/robert/src/ovision/see/Makefile.defs
index 42aed85..92b9671 100644
--- a/2005/i/robert/src/ovision/see/Makefile.defs
+++ b/2005/i/robert/src/ovision/see/Makefile.defs
@@ -5,6 +5,7 @@ LDFLAGS= -Wall -g -fprofile-arcs -ftest-coverage -fmessage-length=0
ovision_OBJECTS = convertImg.o img.o oconfig.o ovision.o segm.o imgInterface.o colorTable.o segmTable.o segmLearn.o group.o magnifier.o #space.o map.o
test_img_OBJECTS = test_img.o img.o imgInterface.o oconfig.o $(image_OBJECTS)
+test_hotelling_OBJECTS = test_hotelling.o hotelling.o oconfig.o
test_cam_OBJECTS = test_cam.o img.o imgInterface.o oconfig.o $(video4linux_OBJECTS) $(image_OBJECTS) $(utils_OBJECTS)
test_segm_OBJECTS = test_segm.o img.o segm.o segmLearn.o oconfig.o imgInterface.o colorTable.o segmTable.o $(image_OBJECTS)
test_ovision_OBJECTS = test_ovision.cc $(ovision_OBJECTS) $(image_OBJECTS) $(video4linux_OBJECTS) $(utils_OBJECTS)
@@ -17,6 +18,7 @@ test_group_OBJECTS = test_group.o group.o img.o segm.o segmLearn.o oconfig.o img
test_magnifier_OBJECTS = test_magnifier.o magnifier.o group.o img.o segm.o segmLearn.o oconfig.o imgInterface.o $(image_OBJECTS)
test_img: $(test_img_OBJECTS:%.o=%.o)
+test_hotelling: $(test_hotelling_OBJECTS:%.o=%.o)
test_cam: $(test_cam_OBJECTS:%.o=%.o)
test_segm: $(test_segm_OBJECTS:%.o=%.o)
$(CXX) $(LDFLAGS) -lz $^ -o $@
diff --git a/2005/i/robert/src/ovision/see/oconfig.cc b/2005/i/robert/src/ovision/see/oconfig.cc
index 784d031..663337a 100644
--- a/2005/i/robert/src/ovision/see/oconfig.cc
+++ b/2005/i/robert/src/ovision/see/oconfig.cc
@@ -51,7 +51,6 @@ OConfig::parse(const char *var, const char *arg)
if (varName == "NN_step_learning") nnSl = atof(arg);
else if (varName == "NN_neighborhood_learning") nnNl = atof(arg);
else if (varName == "NN_number_of_iteration_learning") nnNil = atol(arg);
- else if (varName == "NN_number_of_color_to_segment") nnNbColor = atoi(arg);
else if (varName == "NN_threshold_output") nnThresholdOutput = atoi(arg);
else if (varName == "NN_lum_inosity_influence") nnInfluLum = atof(arg);
else if (varName == "UI_img_path ") strcpy(imgPath, arg);
@@ -118,6 +117,7 @@ OConfig::loadNNFile (const char *filePath)
}
// Chargement des couleurs
char buf [maxChar];
+ groupColor.clear ();
while (!file.eof ())
{
file.getline (buf, maxChar);
@@ -159,6 +159,7 @@ OConfig::loadNNFile (const char *filePath)
for (unsigned int i=0; i<tmpIndex.size (); ++i)
index[i] = (unsigned char)tmpIndex[i];
nnNbNodeMax = tmpIndex.size ();
+ nnNbColor = nnNbNodeMax;
}
/// Creation d'un fichier de poids pour le reseau de neurones
@@ -184,7 +185,7 @@ OConfig::createNNFile (const char *filename, const int nbOutput_) const
{
file << index[i] << "\t";
for (int j=0; j<3; j++)
- file << node[i*3+j] << "\t";
+ file << (int)node[i*3+j] << "\t";
file << "\n";
}
file.close ();
diff --git a/2005/i/robert/src/ovision/see/segmLearn.cc b/2005/i/robert/src/ovision/see/segmLearn.cc
index e13abd2..627f656 100644
--- a/2005/i/robert/src/ovision/see/segmLearn.cc
+++ b/2005/i/robert/src/ovision/see/segmLearn.cc
@@ -43,9 +43,9 @@ SegmLearn::weightsGen (const int numNode)
/// @param nbOutput_ nombre de noeuds de la couche de sortie du NN
/// @param loadFromFile (GENERATE ou LOADFROMFILE) indique si les poids sont charges d'un fichier ou generes aleatoirement
void
-SegmLearn::buildNN (const int nbOutput_, const bool loadFromFile)
+SegmLearn::buildNN (const int nbOutput, const bool loadFromFile)
{
- this->nbOutput_ = nbOutput_;
+ nbOutput_ = nbOutput;
// Initialisation des noeuds du NN
delete [] node_;
node_ = new unsigned char[nbOutput_*3];
@@ -101,8 +101,16 @@ SegmLearn::trainNN (Img *img)
// Mis a jour des poids
for(int k=0; k<3; k++)
{
- node_[numOutputMax*3+k] =
- (unsigned char)((node_[numOutputMax*3+k] + oconfig_->nnSl*tabData_[pixelNum*3+k])/(1+oconfig_->nnSl));
+ // Si on est en yuv ou hsi et que c'est la composante de lum_inosite, on ajoute un poids pour affecter son influence
+ if (k == lumPos_)
+ node_[numOutputMax*3+k] =
+ (unsigned char)(oconfig_->nnSl*(node_[numOutputMax*3+k]
+ + oconfig_->nnSl*tabData_[pixelNum*3+k])/(1+oconfig_->nnSl));
+ // Sinon calcul normal
+ else
+ node_[numOutputMax*3+k] =
+ (unsigned char)((node_[numOutputMax*3+k]
+ + oconfig_->nnSl*tabData_[pixelNum*3+k])/(1+oconfig_->nnSl));
// Recompense pour la sortie qui travaille
freq_[numOutputMax]++;
}