Lisseur de nombres

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: Lisseur de nombres

Message par Mindphazer »

Shadow a écrit :Si ta un lien parce que je trouve pas se que tu m'as mis là.
Qué ???
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Lisseur de nombres

Message par falsam »

@Shadow: A mon humble avis tu peux oublier le format HEIF car c'est pour le moment un format propriétaire Apple.

Un article en français que tu aurais pu trouver par toi même je pense : http://www.phonandroid.com/apple-jpeg-heif.html
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: Lisseur de nombres

Message par Shadow »

J'ai lu vaguement, les taux son ahurissant !!! 8O
GPJ à coté c'est de la camelote !

Ont fais bien mieux que JPG et ans perte !
Bha je déprime encore plus :cry:
Enfin je suis très content aussi !

Oui mais ça existe même si c'est pas encore dispos !
Au pire tu fais ton image en vidéo avec le format H.265 !
C'est la même chose si j'ai bien compris !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Lisseur de nombres

Message par djes »

TazNormand a écrit :@Djes : N'étant pas matheux, je ne m'aventurerai pas sur le terrain des DCT ni des FFT, je te laisse le soin d'expliquer tout ça à Shadow :lol:
:lol: J'en serais bien incapable, d'abord parce que ça me dépasse de loin, et ensuite, euh, parce que je n'en vois pas l'intérêt.

Sinon, ça fait longtemps que je bricole avec d'autres formats, comme le MrSid ou l'ECW ; c'est basé sur les ondelettes. Pour les forts en maths, c'est là : https://en.wikipedia.org/wiki/Wavelet_t ... ompression, là : https://en.wikipedia.org/wiki/Wavelet, et pour la DCT (base du JPEG) en français avec un peu de code, c'est là : https://fr.wikipedia.org/wiki/Transform ... cr%C3%A8te
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: Lisseur de nombres

Message par Shadow »

Bon, après réflexion, je pense avoir réussi ce que je voulais faire:
Alors ça prend une liste de nombre et ça va lisser les nombres suivant la Marge Maximale voulu.

Code : Tout sélectionner

; Code créer par Mr Dieppedalle David le 21/06/2017.

Procedure.s LisseNombres(List ListeNombres.i())
  
  ForEach ListeNombres.i()
    Totale.i + ListeNombres.i()
  Next
  
  Moyenne.i = Round(Totale.i / ListSize(ListeNombres.i()), #PB_Round_Nearest)
  
  ForEach ListeNombres.i()
    ListeNombres.i() = Moyenne.i
  Next
  
EndProcedure

Procedure ListeAjouteNombre(List ListeNombres.i(), Nombre.i, EcartMaximal.i = 4)

  If ListSize(ListeNombres.i()) = 0
    AddElement(ListeNombres.i())
    ListeNombres.i() = Nombre.i
    ProcedureReturn 1
    
  EndIf
  
  FirstElement(ListeNombres.i())
  
  If ListeNombres.i() - Nombre.i <= EcartMaximal.i And ListeNombres.i() - Nombre.i >= -EcartMaximal.i
    LastElement(ListeNombres.i())
    AddElement(ListeNombres.i())
    ListeNombres.i() = Nombre.i
    ProcedureReturn 1
    
  EndIf
  
EndProcedure

; 4 = "100.104.96.100.102.97.100.95.101.98.103.94.100.99.102.92.110.101.98.103.94.100.98.103.94.100" -> "100.100.100.100.100.100.100.95.101.101.101.94.100.100.100.92.110.101.101.101.94.100.100.100.94.100"
; 2 = "100.104.96.100.102.97.100.95.101.98.103.94.100.99.102.92.110.101.98.103.94.100.98.103.94.100" -> "100.104.96.101.101.97.100.95.101.98.103.94.100.100.100.92.110.101.98.103.94.99.99.103.94.100"
; 2 = "5.3.4.7.6.4.5.3.7.6.8.2.5.7.6.4.5.3.1.2.3.1.2.4.6.5.4.6.5.8.4.2.6.9.7.8.9.7.8.9.6.4.5.6.7.4.5.6.7" -> "5.5.5.5.5.5.5.5.5.5.8.2.5.5.5.5.5.5.2.2.2.2.2.5.5.5.5.5.5.8.4.4.4.8.8.8.8.8.8.8.6.6.6.6.6.6.6.6.6"

ListeNombres.s = "100.104.96.100.102.97.100.95.101.98.103.94.100.99.102.92.110.101.98.103.94.100.98.103.94.100"

NewList ListeNombresOriginale.i()
NewList ListeNombresLisser.i()

For I = 1 To CountString(ListeNombres.s, ".") + 1
  
  If Not ListeAjouteNombre(ListeNombresOriginale.i(), Val(StringField(ListeNombres.s, I, ".")), 2)
    
    LisseNombres(ListeNombresOriginale.i())
    
    ForEach ListeNombresOriginale.i()
      AddElement(ListeNombresLisser.i())
      ListeNombresLisser.i() = ListeNombresOriginale.i()
    Next
    
    ClearList(ListeNombresOriginale.i())
    I - 1
    Continue
    
  EndIf
  
Next

If ListSize(ListeNombresOriginale.i()) > 0
  
  LisseNombres(ListeNombresOriginale.i())
  
  ForEach ListeNombresOriginale.i()
    AddElement(ListeNombresLisser.i())
    ListeNombresLisser.i() = ListeNombresOriginale.i()
  Next
  
EndIf

ForEach ListeNombresLisser.i()
  ListeSortie.s + ListeNombresLisser.i() + "."
Next

Debug ListeNombres.s
Debug ListeSortie.s
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Lisseur de nombres

Message par SPH »

Et donc ?

Nous, on attend que tu le mette dans un logiciel de reduction de poids d'une image :idea:

Un "lisseur de nombre", ca ne sert a rien en l'etat... 8)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre