1

J'ai une image de 800 par 600. Je veux le traiter comme une matrice et obtenir les éléments adjacentsObtention des éléments adjacents d'une matrice 2D (profondeur une seule)

ex.

(0,0) (1,0) (2,0) (3,0)

(0,1) (1,1) (2,1) (3,1)

(0,2) (1,2) (2,2) (3,2)

(0,3) (1,3) (2,3) (3,3)

exemples de solutions: (0,0) est adjacente à: (1,0) (0,1) (1,1)

(1,1) est adjacente à: (0,0) (1,0) (2,0) (2,1) (2,2) (1,2) (0,2) (0,1)

j'ai donc écrit un tableau de struct que je vais stocker chacun de ces points dans

typdef struct point 
{ 
    int x; 
    int y; 
}point[800*600]; 

Ma première idée était de mettre en œuvre un DSF mais cela ne fonctionne pas vraiment si je voulais obtenir un opinion extérieure pour me maintenir sur la bonne voie. merci

+1

Il semblerait que vous ayez trop tendance à réfléchir à ce problème - pourquoi ne pas simplement utiliser une matrice 2D? –

+0

cela est dans une question C plus - vous devez corriger les balises. –

+0

Qu'entendez-vous par "stocker chacun de ces points"? Que stockez-vous? valeurs de couleur? –

Répondre

0

La réponse finale dépend de la façon dont vous visualisez l'agencement de votre affichage 2D dans le tableau 1D ('row-first column-last' ou 'column-first row-last').

En supposant que 'rangées premières' (pixels le long de l'incrément de ligne par 1, pixels le long de l'incrément de colonne par ROW_LENGTH):

Première utilisation des définitions pour définir des valeurs pour ROW_LENGTH et col_length

#define ROW_LENGTH 800 
#define COL_LENGTH 600 

Ensuite, vous pouvez facilement ajuster votre taille si les besoins changent sans affecter la façon dont le reste du code fonctionne.

typdef struct point 
{ 
    int x; 
    int y; 
}point[ROW_LENGTH*COL_LENGTH]; 

plus tard, les points adjacents peuvent être obtenus avec quelque chose comme:

adjacentWest = point[(y*ROW_LENGTH) + (x-1)]; 
adjacentNorth = point[((y+1)*ROW_LENGTH) + x]; 

Vous devrez ajuster Nord et du Sud pour être +1 ou -1 selon que votre origine est en haut -left ou en bas à gauche de votre écran.

Questions connexes