2010-06-17 11 views
2

J'ai un projet qui peut détecter un objet de picture.it utilisé gradient de conjugaison échelle de propagation arrière pour l'entraînement. J'ai utilisé 10 composants pour l'entrée. r, g, b, écart-type, entropie, seuil (méthode Onsu), glcm qui contient le contraste, l'homogénéité, la corrélation et l'énergie. je les extrait manuellement. j'ai 100 entrées. 50 sont objet, 50 ne sont pas objet.il est difficile de maintenir la méthode manuellement. donc je veux utiliser la boucle et le tableau. J'utilise 2 dossiers pour l'objet fichier et non objet. comment extraire le fichier dans 2 dossiers? dossier Première: C: \ Documents and Settings \ User \ Mes Documents \ Matlab \ objet second dossier: C: \ Documents and Settings \ User \ Mes Documents \ objet nonstatistique d'analyse de texture, extraction de fonctionnalité pour l'objet de détection dans matlab

ceci est mon codage. je les écris manuellement jusqu'à 100. peux-tu m'aider à les grouper et à les boucler?


kl=imread('1.jpg'); 
g=rgb2gray(kl); 
rgb=mean(mean(kl)); 
r1=rgb(:,:,1); 
g1=rgb(:,:,2); 
b1=rgb(:,:,3); 
std1=std2(g); 
entropy1=entropy(g); 
tres=graythresh(g); 
glcm=graycomatrix(g); 
F=graycoprops(glcm,{'Contrast','Homogeneity','Correlation','Energy'}); 

J'espère que vous pouvez donner une solution. pls m'aide.

Répondre

3

Si tous vos fichiers sont nommés 1.jpg, 2.jpg, ..., vous pouvez effectuer les opérations suivantes:


for i = 1:50 
    fileName = sprintf('%d.jpg', i); 
    kl = imread(fileName); 

    ... the rest of your code... 

end 
3

Si, en plus de boucle sur les images dans chaque répertoire à l'aide @Dima solution, vous voulez également faire une boucle sur les deux répertoires, vous pouvez faire ce qui suit:

dirNames = {'C:\Documents and Settings\User\My Documents\MATLAB\object','C:\Documents and Settings\User\My Documents\non object'}; 

for directory = dirNames %# loops directly over the elements of the cell array dirNames 
    fileList = dir(fullfile(directory{1},'*.jpg')); %# list all jpgs in the directory 
    for iFile = 1:length(fileList) 
     %# read the ith file 
     kl = imread(fullfile(directory{1},fileList(iFile).name)); 

     %# do the calculations here 

    end 
end