J'ai calculé l'histogramme (un tableau 1d simple) pour une image en niveaux de gris 3D. Maintenant, je voudrais calculer le gradient pour cet histogramme à chaque point. Donc, cela signifierait que je dois calculer le gradient pour une fonction 1D à certains points. Cependant je n'ai pas de fonction. Alors, comment puis-je le calculer avec des valeurs concrètes x et y?Calculer le gradient pour un histogramme en C++
Par souci de simplicité pourriez-vous expliquer sans doute cela pour moi sur un histogramme exemple - par exemple avec les valeurs suivantes (x est l'intensité, et y la fréquence de cette intensité):
x1 = 1; y1 = 3
x2 = 2; y2 = 6
x3 = 3; y3 = 8
x4 = 4; y4 = 5
x5 = 5; y5 = 9
x6 = 6; y6 = 12
x7 = 7; y7 = 5
x8 = 8; y8 = 3
x9 = 9; y9 = 5
x10 = 10; Je sais que c'est aussi un problème de maths, mais comme j'ai besoin de le résoudre en C++, vous pouvez m'aider ici.
Merci pour vos conseils Marc
Puisque vous n'avez pas de fonction, et que ces points peuvent être ajustés à un nombre arbitraire de fonctions qui passent par ces points, le gradient est inconnaissable. Vous devrez mieux contraindre les paramètres de la fonction cachée afin de découvrir le dégradé. Peut-être préféreriez-vous plutôt connaître le gradient de la droite la mieux ajustée à tous ces points (régression linéaire) ou spécifier que vous voulez connaître le gradient d'une fonction quadratique (par exemple) qui passe le plus près de ces points? –
Salut, comme je l'ai écrit ci-dessous, j'ai besoin du dégradé pour déterminer si la pente de mes histogrammes est en baisse ou en hausse. Et en général, je pense que l'approche d'Andreas d'en bas devrait être ok. Cependant, je ne sais pas s'il y a des problèmes avec les valeurs aberrantes sur la pente. Vos suggestions (régression linéaire ou gradient d'un quadratique) résoudraient-elles ce problème? De plus, j'aimerais utiliser ces calculs sur différents histogrammes. La régression linéaire fonctionne-t-elle partout, puisque l'histogramme peut avoir de nombreux pics et n'augmente ou ne diminue pas toujours dans toute la plage d'intensité. Merci pour votre aide, Cordialement – Marc
@ Marc encore une chose (pas lié à la question). Les gens ne seront pas très désireux de vous aider si vous n'acceptez pas les réponses ou même ne votez pas dans les réponses que vous pensez pouvoir vous être utiles – Andres