1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Mat image = imread("....../imagsource.png", CV_LOAD_IMAGE_GRAYSCALE);
blur(image, image, Size(3,3), Point(-1,-1), BORDER_DEFAULT ); // filtre (blur) appliquer un lissage sur l'image source
// création du vecteur colonne qui contient l'intensité sur chacune des colonnes
vector<int> sum_colonne(image.cols,0);
for (int y = 0; y < image.rows; y++)
for (int x = 0; x < image.cols; x++)
sum_colonne[x] += image.at<unsigned char>(y,x);
for(int i = 0; i < image.cols; i++)
cout<<sum_colonne[i]<<" "<<endl;
// puis récupérer ce vecteur sum_colonne (std::vector) ,et faire une boucle pour parcourir chaque valeur de l'intensité et la comparer aux deux valeurs du voisinage (gauche et droite) afin de trouver les max et les min
for (vector<int>::iterator it = sum_colonne.begin()+1; it != sum_colonne.end()-1; it++)
if((*it) > *(it-1) && (*it) > *(it+1))
{
cout<< "la valeur du Max est : " << *it << " " << "d'indice : " << &it <<"\n";
vector<int> max;
max.push_back(*it);
cout << "le vecteur max :"<< max<<"\n"; |
Partager