IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scilab Discussion :

Redimensionner une image


Sujet :

Scilab

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Redimensionner une image
    Bonjour,

    Je travaille actuellement sur un projet pour adapter la taille d'une interface à la taille de l'écran pour que l'on puisse l'afficher sans difficulté sur n'importe quel écran.

    Pour les cadres j'ai trouvé comment faire, il suffit de d'aller chercher la taille de l'écran avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    h=get(0,"screensize_px")
    et ensuite de définir les dimensions du cadre par rapport à h.
    petit exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Position"        , [h(3)/21.3 h(4)/30.86 h(3)/64 h(4)/43.2],..
    Mais maintenant je souhaiterais également rendre mon image proportionnelle au cadre dans laquelle je l'affiche, pour l'instant j'ai adapté mon cadre à la taille de l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    board_frame=uicontrol(axes_meters_frame,...
    "Position"        , [287.5 5 745 300], ...
    "style"           , "image", ...
    "string"          , WorkingPath+"\Icons\dashboard.jpg");
    mais je souhaiterais faire l'inverse, je n'ai pas adapté le cadre pour l'instant, j'attend de réussir à redimensionner l'image.

    j'ai trouvé ce code pour Matlab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    img = rand(150,200); % Une image 2D aléatoire
    size(img)
     
    ans =
     
       150   200
     
    img = img(1:2:end, 1:2:end);
     
    size(img)
     
    ans =
     
        75   100
    Mais malheureusement je n'arrive à l'adapter pour scilab.

    Je cherche aussi à adapter la taille de la police d'écriture, mais pour cette partie là je n'ai absolument rien trouvé

    Si quelqu'un à une (ou plusieurs) piste à me donner je suis preneur

    sorry pour ce post un peu long

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut imresize()
    Bonjour,

    Une possibilité est de travailler avec SIVP (en installant le module ATOMS), la fonction imresize() est alors disponible :


    imresize() resize the input image. When scale parameter is specified, the width and height of the image is resized in the same scale. There are four interpolation method can be used: nearest-neigbor, bilinear, bicubic and area methods. The default method is nearest-neigbor method.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    im = imread(SCI + '/contrib/sivp/images/lena.png');
    imr = imresize(im, scale);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 13
    Points
    13
    Par défaut imresize
    Bonjour,
    Merci pour ton aide , grâce à cette fonction j'arrive à modifier la taille mais malheureusement l'image elle n'arrive plus à s'afficher ,
    Voici mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ///////////////////frame containing the DASHBOARD
    im = imread("C:\Users\trizo\Desktop\HMI_SAGES_20151118\Icons\dashboard.jpg");
    imr = imresize(im, [600,200]);
    board_frame=uicontrol(axes_meters_frame,...
    "Position"        , [287.5 5 800 300], ...
    "style"           , "image", ...
    "string"          , "imr");
    Voila ce que ça donne :
    Nom : dashboard.png
Affichages : 964
Taille : 6,6 Ko

    Aucun message d'erreur ne s'affiche, j'ai essayé plusieurs choses mais je commence à sécher si quelqu'un à une idée?

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Tu affiches l'image avec imshow() ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Non j'ai essayé avec la fonction imshow mais mon image s'ouvre dans une nouvelle fenêtre.

    Mais au moins en l'affichant j'ai pu vérifier que mon image était bien redimensionné.

    J'ai aussi essayé la fonction imwrite()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    im = imread(WorkingPath + "\Icons\dashboard.jpg");
    imr = imresize(im, [h(4)/3.6,h(3)/2.58]);
    imwrite(imr, 'WorkingPath + \Icons\imr');
    board_frame=uicontrol(axes_meters_frame,...
    "Position"        , [287.5 5 h(3)/2.58 h(4)/3.6], ...
    "style"           , "image", ...
    "string"          , WorkingPath + "\Icons\imr.jpg");
    pour enregistrer ma nouvelle image et pouvoir l'afficher ensuite mais j'ai un message d'erreur pas très rassurant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Warning !!!
    Scilab has found a critical error (Unknown exception)
    with "sivp" function.
    Save your data and restart Scilab.
     
    Attention : Problème avec la pile...
    Je pense que cette fonction est seulement pour les images matricielles mais je ne suis pas sûr

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Si c'est un problème avec la pile, essaie :

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse !

    Mais je devais mal écrire la fonction, j'ai trouvé la bonne syntaxe et maintenant je peux redimensionner mes images à la taille que je veux et les positionner ou je le souhaite
    Voici mon code pour ceux qui souhaiterais l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    im = imread(WorkingPath + "\Icons\dashboard.jpg");
    imr = imresize(im, [h(4)/3.6,h(3)/2.58]);
    imwrite(imr, WorkingPath + "\Icons\dashboard.jpg");
    board_frame=uicontrol(axes_meters_frame,...
    "Position"        , [287.5 5 h(3)/2.58 h(4)/3.6], ...
    "style"           , "image", ...
    "string"          , WorkingPath + "\Icons\dashboard.jpg");

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    et je préciserai qu'il vaut mieux avoir une image original de grande taille pour avoir la meilleur résolution possible, et ensuite il ne faut pas écraser l'image original pour éviter les problèmes de pixels lorsque vous passer d'un écran petit à un écran plus grand sinon cela ruinera à terme la qualité de l'image.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  2. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  3. Redimensionner une image...
    Par RhaZieL dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 22/07/2005, 09h30
  4. [VB.NET] Redimensionner une image proportionnelement
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2004, 12h10
  5. [MX2004] redimensionner une image lors du chargement
    Par ouinouin dans le forum Flash
    Réponses: 8
    Dernier message: 18/02/2004, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo