statistique liste avec elements faux - Algo - Programmation
Marsh Posté le 01-02-2022 à 14:44:10
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
Marsh Posté le 01-02-2022 à 15:22:40
if value < min or value < max then
container 0 count := container count + 1
end if;
Marsh Posté le 01-02-2022 à 17:36:01
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 :
|
Marsh Posté le 01-02-2022 à 17:39:53
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
Marsh Posté le 01-02-2022 à 17:43:55
je crois que j'ai capté
Code :
|
en plus simplifié :
Code :
|
ç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
Marsh Posté le 02-02-2022 à 08:27:12
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.
Marsh Posté le 01-02-2022 à 14:40:20
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 )
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 ( je vais bien sûr chercher de mon côté, mais si on peut m'orienter sur la méthodologie, ça m'irait bien ).