Nous voulons exécuter notre banque de filtres sur une image en convolvant chaque filtre de la banque avec l'image et en concaténant toutes les réponses dans un vecteur pour chaque pixel. En utilisant la commande imfilter dans une boucle pour ce faire. Puisque les images couleur ont 3 canaux, nous allons avoir un total de 3F réponses de filtre par pixel si la banque de filtres est de taille F. N ensuite en sortie le résultat en tant qu'image de canal 3FSauvegarder la sortie de l'image 3 canaux après avoir utilisé une matrice de filtres avec collage de montage dans Matlab
final = [];
for i = 1: length(filterBank)
x = imfilter(img, cell2mat(filterBank(i)));
imshow(x);
final(i)= [x]
end
où:
FilterBank est une cellule de 20X1; FilterBank (i) est 5X5 à double
img est un 230X307X3 uint8
finale est juste []
cela donne une erreur incompatibilité de dimension d'affectation indicés.
Alors j'ai essayé:
final(1:1:1) = x
cela donne une erreur: Dans une affectation A (:) = B, le nombre d'éléments dans A et B doit être le même .
Je suis un noob Matlab mais veulent essentiellement pour enregistrer toutes les matrices 3d résultat sur l'application de chaque filtre à une seule matrice puis appliquer une commande de montage