Bonjour;
je veux découper mon image en petites images de taille 10*10 pixels.
je sais que la fonction imcrop fait le découpage mais je sais pas comment l'utiliser dans ce cas.
Merci
Bonjour;
je veux découper mon image en petites images de taille 10*10 pixels.
je sais que la fonction imcrop fait le découpage mais je sais pas comment l'utiliser dans ce cas.
Merci
Tu peux nous expliquer ce que tu cherches à faire au final ?
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
tout d'abord je tiens à te remercier Dut pour ton aide.
je vous explique mon travail, je programme une application de reconnaissance de formules mathématiques, je veux utiliser cet algorithme pour faire la reconnaissance:
1) squelettisation de l'image
2) réduction de l'image en image frontière cad éliminer les parties inutiles et laisser uniquement le symbole.
3) découpage de l'image en morceau de 10*10 pixels
4) pour chaque morceau
• remplacer les pixels noirs dans un morceau par une ligne contenu qui relie les deux pixels d'extrémités
• les pixels d’extrémités en les coordonné successive (x,y) (x’,y’). remplir le tableau S avec S[i]=(x-x’)/(y’-y)
• remplir un tableau L avec L[i]=sqrt((x’-x)²+(y’-y)²)
• un troisième tableau va représenter les changements d’angle entre les segments
par ces trois tableau je vais caractériser mon symbole
et à chaque fois que j’entre une formule au système il va comparer chaque symbole dans cette formule avec ces tableaux pour reconnaitre le symbole.
Donc ma question concerne l’étape 3 de mon algorithme.
Donc tu n'as pas besoin de découper l'image, il te suffit de travailler par morceaux.
Maintenant, les dimensions de l'image sont-elles des multiples de 10.
Obtiens-tu un nombre entier de bloc dans les deux dimensions de l'images.
Si non, comment prends-tu en compte les blocs "incomplets"
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
non les tailles des images ne sont pas obligatoirement des multiples de 10.
dans ce cas je pense je vais considérer les blocs restant des bloc à part.
Voici l'idée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 img = imread(...); S = size(img) nr = floor(S(1)/10); nc = floor(S(2)/10); for r = 1:nr for c = 1:nc subimg = img((r-1)*10+1:10*r,(c-1)*10+1:10*c,:); end end
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonsoir;
Merci à tous ceux qui ont participé à cette discussion,
Pour Dut, j'ai testé votre code avec une petite modification pour sauvegarder chaque portion de l'image dans une matrice. voici le code:
mon problème c'est que j'attendrais que mon programme m'affiche une des portions mais il m'affiche la totalité de l'image comme si j'ai rien fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 img = imread('c:\base_image\t.png'); S = size(img) nr = floor(S(1)/10); nc = floor(S(2)/10); j=1; for r = 1:nr for c = 1:nc subimg(1:10,1:10,:)= img((r-1)*10+1:10*r,(c-1)*10+1:10*c,:); im{j}=subimg; j=j+1; end end figure; imshow(im{2});
Quelle est la taille initiale de ton image ?
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonjour;
concernant la taille de mon image ce n'est pas important la taille puisque l'image est invariable, pour cet image de test sa taille est:
S =
38 50 3
c'est bon j'ai arrivé à découper mon image en morceau, maintenant puisque la dimension de l'image n'est pas obligatoirement multiple de 10, il me reste un problème pour les blocs incomplets, voici ce que j'ai proposé mais j'ai une erreur:
l'erreur est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 img = imread('c:\base_image\test.png'); S = size(img) nr = floor(S(1)/10); nc = floor(S(2)/10); j=1; for r = 1:nr for c = 1:nc subimg(1:10,1:10,:)= img((r-1)*10+1:10*r,(c-1)*10+1:10*c,:); im{j}=subimg; j=j+1; end end for r=nr+1:S(1) for c=nc+1:S(2) subimg(1:10,1:10,:)=img((r-1)*10+1:10*r,(c-1)*10+1:10*c,:); im{j}=subimg; j=j+1; end end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ??? Index exceeds matrix dimensions. Error in ==> test at 19 subimg(1:10,1:10,:)=img((r-1)*10+1:10*r,(c-1)*10+1:10*c,:);
As-tu pris le temps de comprendre la technique d'indexage que je t'ai montrée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for r = 1:nr for c = 1:nc (r-1)*10+1:10*r (c-1)*10+1:10*c end end
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonjour à tous,
J'aimerais utiliser ce programme, déjà par curiosité du résultat, et par la suite pour de l'art.
Peux t'on avec ce programme découper une image et mettre les morceaux dans une feuille Excel pour la reconstituer ?
Ensuite ça permettrait de triturer l'image à des fins artistiques.
Reste à savoir si ce programme peut âtre utilisé tel quel ou qu'il était uniquement prévu pour s'insérer dans un programme plus vaste de Hawther,
et que tel quel il ne donne rien.
Je me propose de le coller dans une macro Excel vide et de cibler une image quelconque sur mon bureau.
Merci de votre réponse.
Cordialement
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager