Forum du développeur

Le forum du développeur vous permettra d'obtenir de l'aide si vous voulez débuter le développement ou si vous développez, que ce soit des programmes ou des sites web. Il vous aidera aussi pour votre système d'exploitation et votre matériel...


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

traitement d image

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

1 traitement d image le Lun 11 Mai - 13:05

svp qulequ un pourrait m aider jai un programme ecrit en c++ je voudrai le transforme en c

Voir le profil de l'utilisateur

2 Re: traitement d image le Lun 11 Mai - 14:38

Code:
void medianfilter(const int* image, int* result, int N, int M)

{
// Move window through all elements of the image
for (int m = 1; m < M - 1; ++m)
for (int n = 1; n < N - 1; ++n)
{
// Pick up window elements
int k = 0;
int window[9];
for (int j = m - 1; j < m + 2; ++j)
for (int i = n - 1; i < n + 2; ++i)
window[k++] = image[j * N + i];
// Order elements (only half of them)
for (int j = 0; j < 5; ++j)
{
// Find position of minimum element
int min = j;
for (int l = j + 1; l < 9; ++l)
if (window[l] < window[min])
min = l;
// Put found minimum element in its place
int dist temp = window[j];
window[j] = window[min];
window[min] = temp;
}
// Get result - the middle element
result[(m - 1) * (N - 2) + n - 1] = window[4];
}
}
/*
// 2D MEDIAN FILTER wrapper ( extension)

//void medianfilter(element* image, element* result, int N, int M)
void medianfilter(const int* image, int* result, int N, int M)
{
// Check arguments
if (!image || N < 1 || M < 1)
return;
// Allocate memory for signal extension
int * extension = new int [(N + 2) * (M + 2)];
// Check memory allocation
if (!extension)
return;
// Create image extension
for (int i = 0; i < M; ++i)
{
memcpy(extension + (N + 2) * (i + 1) + 1, image + N * i, N * sizeof(int));
extension[(N + 2) * (i + 1)] = image[N * i];
extension[(N + 2) * (i + 2) - 1] = image[N * (i + 1) - 1];
}
// Fill first line of image extension
memcpy(extension, extension + N + 2, (N + 2) * sizeof(int));
// Fill last line of image extension
memcpy(extension + (N + 2) * (M + 1), extension + (N + 2) * M, (N + 2) * sizeof(int));
// Call median filter implementation
medianfilter(extension, result ? result : image, N + 2, M + 2);
// Free memory
delete[] extension;
}

}

Voir le profil de l'utilisateur

3 Re: traitement d image le Mer 8 Juil - 7:19

Bonjour,
Je suis dans le même cas, avez-vous eu des réponses, merci!

Voir le profil de l'utilisateur

4 Re: traitement d image le Mer 8 Juil - 7:20

Voir le profil de l'utilisateur

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum