Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
814 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  statistique liste avec elements faux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

statistique liste avec elements faux

n°2408629
xilebo
noone
Posté le 01-02-2022 à 14:40:20  profilanswer
 

Bonjour,
 
Je suis mauvais en algorithmique et j'ai une problématique à résoudre qui je pense est assez simple, mais je ne voudrais pas faire ça de la mauvaise façon.
 
J'ai un tableau avec des nombres entiers croissants.
 
Par exemple  [ 3, 3 , 3 , 4 ,4 ,4 ,5 , 5 ,5 ... ]
 
Le point de départ n'est pas important, mais ça doit être croissant ensuite.
 
le cas idéal que je dois avoir c'est 9,10 ou 11 chiffres identiques continus, puis l'incrément suivant etc...
 
Par exemple  
 
[ 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3  , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 4  ,4 , 4 , 4 , 4 , 4 , 4 , 4  ... ]
 
Ce qui me permettrait d'en ressortir 10(2)  , 10(3 ) , 10(4) , etc...
 
Sauf que ma capture donne des éléments faux.
 
Les éléments faux peuvent être -1 , ou un nombre totalement incohérent, ou encore une suite qui saute.
 
Par exemple  
 
 
[ 2 , 2 , -1 , 2 , 8 , 2 , 2 , 2 , 2 , 2 , 3  , 3 , 3 , 3 , 17 , 3 , 5 , 5 , 5  ,5 , 5 , 5 , 5 , 5 , 5 , 5  ... ]
 
ce qui devrait me donner comme résultat : 10(2)  ,6(3) , 0(4) , 10(4).
 
Je ne vois pas bien comment aborder la chose, parce qu'à chaque fois que je veux aborder l'algo et que je veux écrire quelque chose, je m'aperçois qu'il y a des cas que je n'aurai pas traité, je me dis donc que j'aborde mal le sujet ( de façon trop empirique ). Existe-t-il une approche mathématique permettant de résoudre cela , il semblerait que cela fasse appel à la notion de statistique ( domaine dans lequel je suis une bille :o )
 
Concrètement, ici, j'ai timecodé des images vidéos, que j'ai capturé ensuite à haute fréquence ( vidéo à 24fps , filmée à 240fps ) , le but est de détecter les saccades et drop d'image, je capture en OCR avec opencv et tesseract le texte en incrustation afin de compter la durée de chaque image, mais tesseract reconnait mal mon texte ( pourtant du arial simple ) et me génère beaucoup de faux.
 
Sur une vidéo fluide, je devrais avoir chaque timecode 10 fois  (l'image 00:00:03.17 se répète 10 fois sur la vidéo à 240fps )
 
 
Merci d'avoir pris le temps de lire, et je comprendrais le 0 réponse, c'est assez spécifique :o ( je vais bien sûr chercher de mon côté, mais si on peut m'orienter sur la méthodologie, ça m'irait bien ).

mood
Publicité
Posté le 01-02-2022 à 14:40:20  profilanswer
 

n°2408630
xilebo
noone
Posté le 01-02-2022 à 14:44:10  profilanswer
 

juste pour info, voici un jeu de capture que j'ai fait :  
 
https://pastebin.com/0rihP5wk
 
Ca se trouve ça doit pouvoir se faire avec excel

n°2408637
Profil sup​primé
Posté le 01-02-2022 à 15:22:40  answer
 

if value < min or value < max then
   container 0 count := container  count + 1
 
end if;

n°2408646
citation
Posté le 01-02-2022 à 17:36:01  profilanswer
 

Si j'ai bien compris,
tu crées une variable X qui va etre la 1ere valeur dans ton tableau X = tab[0] (dans ton dernier exemple ça sera 2)
et un tableau Y pour dire combien il y a d'éléments par valeur
on initialise tous les elements de Y à 0
ensuite tu parcoures le tableau :
 

Code :
  1. for(index=0 to nbDonnées-1)
  2.      si tab[index] <= X alors incrementer Y[X]
  3.      si tab[index] > X alors X=tab[index]; incrementer Y[X]

n°2408647
citation
Posté le 01-02-2022 à 17:39:53  profilanswer
 

donc logiquement, les valeurs  
[40, 40, 40, -1, 42, -1, 41, 41]
seront equivalentes à
[40, 40, 40, 40, 42, 42, 42, 42]
 
pas sûr que c'est ce que tu veux

n°2408649
citation
Posté le 01-02-2022 à 17:43:55  profilanswer
 

je crois que j'ai capté :o
 

Code :
  1. for(index=0 to nbDonnées-1)
  2.      si tab[index] != (X+1) alors incrementer Y[X]
  3.      si tab[index] ==(X+1) alors X=tab[index]; incrementer Y[X]


 
en plus simplifié :

Code :
  1. for(index=0 to nbDonnées-1)
  2.      si tab[index] ==(X+1) alors incrementer X
  3.      incrementer Y[X]


 
ça marche tant que l'incrementation n'est que de +1
Par contre, si on a la liste
[40, 40, 40, 40, 42, 42, 42, 42, 43, 43]  
ça va etre interpreté comme
[40, 40, 40, 40, 40, 40, 40, 40, 40, 40] // tant qu'il ne trouvera pas 41


Message édité par citation le 01-02-2022 à 18:30:52
n°2408694
xilebo
noone
Posté le 02-02-2022 à 08:27:12  profilanswer
 

Bonjour,
 
Merci pour ces réponses.
 
En attendant j'ai avancé de mon côté, j'ai réussi à pondre un bout de code permettant d'approcher le résultat, mais il y a quelques erreurs dedans ( qui n'arrivent pas car les cas ne sont pas présents dans mon jeu d'essai ). Je pense que je vais travailler sur l'OCR et / ou sur le timecode incrusté dans la vidéo pour améliorer la reconnaissance OCR avant d'essayer de détecter des erreurs qui pourraient ne pas en être.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  statistique liste avec elements faux

 

Sujets relatifs
Comportement champ liste sélection multiple différent entre PHP5 et 8Comment tester une liste d'URLs en batch ou PS avec log ?
Comment afficher tous les éléments d'une drowndown list ?[RÉSOLU] Envoyer une liste de noms de fichiers vers un exécutable
Créer une liste déroulanteChoisir une valeur par défaut sur une liste de choix
Récupérer 2 élément à part dans des variable à partir d'un liste.Trier les éléments d'une liste afin de maximiser l'espacement de deux occurrence
mousover java sur plusieurs éléments en même temps 
Plus de sujets relatifs à : statistique liste avec elements faux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR