Je cherche à implémenter un algorithme de rééchantillonnage pour un tableau 2D (il pourrait s'agir d'une image en niveaux de gris ou d'un tableau 2D de valeurs à virgule flottante).Image/Rééchantillonnage de matrice 2D en C
Les étapes impliquées dans cette opération particulière sont:
Étant donné un tableau 2D, je premier sous-échantillonnage à la taille de 8x8 ou 16x16, en utilisant une méthode de sous-échantillonnage (de préférence avec un anti-aliasing précédant filtration).
Opération nuemrique à ce sujet.
Puis remontez l'échantillon à sa taille d'origine en effectuant une interpolation bilinéaire.
En tant que prototype, je l'ai codé comme indiqué ci-dessous dans Octave. Il donne des résultats décents. Je cherche à obtenir des références sur la mise en œuvre du C.
fid = fopen("anti_vig_gain_map.txt","r");
fid2 = fopen("ds_us_anti_vig_gain_map.txt","w");
for i=1:1968
for j=1:2592
map(i,j) = fscanf(fid,'%f\n',1);
end
end
%downsample
ds_map = imresize(map,[8 8],'linear');
%% some processing on ds_map
%upsample
us_map = imresize(ds_map,[1968 2592],'linear');
J'ai essayé de voir le code imresize.m mais il devient compliqué après un certain temps et ne pouvait pas extraire du code C sortir.
Tout pointeur sur le code C de référence pour l'interpolation bilinéaire pour effectuer le suréchantillonnage.
Je cherche également à obtenir des pointeurs pour le filtre anti-repliement et la méthode de down-sampling utilisant la méthode bilinéaire.
merci. Va lire le code et mettre à jour. – goldenmean
J'ai lu ce code, mais il est - a) difficile à comprendre et donc à extraire/modifier. b) Aucun moyen de le tester. – goldenmean