begin process at 2010 02 10 06:13:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Zoom conservation contour


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Zoom conservation contour

mercredi 12 septembre 2007 à 11:45:46 | Zoom conservation contour

thibobr

Bonjour,

je viens demander un peu d'aide après 2 jours à chercher un algo efficace pour mon problème.

Je souhaite effectuer un zoom négatif d'une forme.
J'ai deux contraintes: un bord du contour(de la forme) est composé de deux pixels adjacents. First est à l'extérieur et Second à l'intérieur.
Un bord définie par deux pixels et suivi par un autre bord et on se dirige dans le sens inverse des aiguilles d'une montre.

Pour le zoom positif j'y arrive bien en faisant une interpolation linéaire des pixels puis en vérifiant que chacun des couples de pixels sont adjacents, sinon je modifie en déplacant second vers first.
Puis je rajoute les pixels manquants entre.

Mais pour le zoom négatif je me retrouve souvent avec First==Second et il y a trop de pixel(plusieurs fois les meme coordonnées)
Du coup je perds et les bords et le sens de navigation, que faire?

ps: j'ai une piste, un angle de ma forme est définie comme suit:
soit deux bords consécutifs A et B composés chacun, je le rappel, de 2 pixels, First et Second. Alors soit A::First == B::Fisrt ou A::Second==B::Second

Merci

Toby or not Toby

http://aubrun.thibaut.free.fr

mercredi 12 septembre 2007 à 17:07:01 | Re : Zoom conservation contour

buno

Salut Thibault!
Je n'ai pas tout compris: pourquoi ton zomm dépendrait de la forme contenue dans l'image?
Une réduction se fait généralement de cette manière: la couleur du pixel résulat est une moyenne des pixels du voisinage. Pour un agrandissement, tu fais une interpolation avec les pixels voisins.

Si tu veux un exemple, regarde ma source qui explique clairement (enfin, j'espère ) quelques traitements d'images.
Si pb de compréhension, je suis dispo...

Bon courage et tiens nous au courant!

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
mercredi 12 septembre 2007 à 17:43:44 | Re : Zoom conservation contour

thibobr

Bonjour buno.

Je suis entierement d'accord avec toi concernant l'interpolation linéaire, bicubique...

Mais la je définit un contour que je dois absolument conserver. En fait je définit deux pixels qui forment alors une partie de se contour.

Je vais exposer quelques hypothèse pour définir mon contour:

Deux pixels, un extérieur et un intérieur au contour, forme un lignel.
Chaque lignel précède un autre lignel et sont adjacents.
Un ensemble de lignels forment un contour dans le sens anti horaire.

Je souhaite réduire ce contour en gardant les proriétés

J'ai pensé à une solution:

Remplir une matrice 2D de 0 (une image noir et blanc).
Pour chaque Lignel prendre le pixel extérieur et affecté 1 à la matrice 2D à la
position x y de ce pixel.
Puis on fait un zoom linéaire tout simple.

Ensuite on utilise un algo de "OUT IN" (je sais pas si cela s'appel comme ca)
On parcours notre nouvelle image de gauche à droite pour chaque ligne.
En gros au départ on est à l'extérieur. Si on change de valeur de pixel on est à l'intérieur, si on change encore on est a l'extérieur ...
Bref on est capable de dire tiens on tombe sur un bord.

Et la j'ai un problème.
Soit on fait cela
La il faut faire le même algo dans le sens haut vers bas et seulement pour la colonne courante afin de déterminer ou se trouve le deuxième pixel formant notre lignel

Soit on préremplit notre image de 1 mais uniquement à l'intérieur du contour obtenu par interpolation(sais po comment on fait). et dans ce cas il suffit juste de regarder en haut a gauche a droite et en bas ou il y a des 0 afin de définir notre deuxième pixel.


Bon la je parie que personne ne me comprends plus ;)


mercredi 12 septembre 2007 à 18:12:13 | Re : Zoom conservation contour

buno


Effectivement, tu m'as perdu...
Si je comprends bien, tu as une forme dans ton image (délimitée par un contour) et tu veux appliquer un changement de taille sur ce contour?? Si oui, je te diriges vers les notions d'érosion et de dilatation.
Voici une page contenant de bonnes explications pour l'érosion.
C'est ce principe que tu veux utiliser?
Suis-je à côté de la plaque?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
jeudi 13 septembre 2007 à 09:31:57 | Re : Zoom conservation contour

thibobr

En fait je travail sur les coordonnées de mes points. L'image en elle même je m'en fiche.

Ce que je veux faire peut paraitre bizarre, je sais. Ce qui m'intéresse c'est d'obtenir un contour définie non pas par une suite de pixels mais par une suite d'arrêtes. Une arrête comportant 2 pixels. exemple:   P1|P2 
Intuitivement on voit bien que si on fait un zoom on perds la propriété P1 est adjacent à P2. De plus il peuvent se superposer, on perds alors la direction de l'arrête.


Pour un affichage à l'écran je n'utiliserais que P1 par exemple.

Merci quand même.


Cette discussion est classée dans : first, zoom, pixels, contour, second


Répondre à ce message

Sujets en rapport avec ce message

extraction du contour d'une image BMP [ par juliette ] On a une image en noir et blanc et on souhaiterait extraire son contour.Les images sont sous le format BMP.Extraire le contour d'une image consiste à Un second défi en C ou C++ [ par ShArK ] Construire un programme permettant de tracer le graphe de la fonction f(x)=sin²(x)-x en mode graphique. Probeleme de timer [ par waaag ] bonjour!un petit souci:j'ai deux fenetres distinctes:*la MAIN (qui peut appeler la SECOND en créant son objet puis DoModal)*la SECONDj'aimerais que le HELP !! executer une prog [ par ben01n ] je prog sous gcc et je voudrai executer un second prog a partir de mon prog sans que ce dernier n'attende la fin du second progsi vous avez une soluti travailler avec les pixels [ par Adeon ] Adeon peut on travailler avec les pixels en console win 32 sinon avec quoi et comment puis je faire de vrai dessins. parceque y pixels en C ! [ par toto000 ] Bonjour,J'ai une image et je voudrai savoir comment récupérer les données de chaque pixel c'est-à-dire son taux de rouge, de vert et de bleu afin de r Débutant : Quelle fonction pour les pixels ???? [ par sebeuste ] Je voudrais reussir a definir chaque pixel de l'ecran de la console mais je ne sais pas quelle bibliothèque utilisée et quelle fonction non plus .... Je cherche un moyen de contrôler les pixels en C/C++ [ par EnjeeDenton ] J'aimerai bien pouvoir contrôler l'affichage pixel par pixel sous console (enfin si c'est possible !).Merci.Enjee Denton Afficher un tableau de pixels [ par elinep ] Donc comment peut on en win32 afficher une image que l'on a sous la forme d'une matrice de pixels?J'ai essaye en faisant CreateBitmap() puis en modifi Pixels et transformation [ par tintin72 ] Bonjour,j'aimerai savoir s'il y a une correspondance entre les transformations en OpenGL et les pixels.Je m'explique:ex // code OpenGL qui dessi


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales