2013-03-15 4 views
1

내 Ground Truth와 Segmentation 결과를 비교해보고 싶습니다. 둘 다 다른 디렉토리에 main_folder에 저장되어 있는데 액세스하고 싶지만 디렉토리 내의 데이터에 액세스 할 수없는 것처럼 보입니다. . 누군가 코드에 무슨 문제가 있는지 도울 수 있습니까? 내가 그것을 디버깅 할 때 문제가 내가 디렉토리 내부의 데이터를 액세서 할 수 있기 때문에,Matlab 액세스 디렉토리

addpath('main') 
currentDir=pwd; % current directory in main_folder 
cases=dir('Casos_img'); 
interp=1; 
ori=1; 
ASMvGT=zeros(0,1); 
for c=3:size(cases,1) 
    caseName=cases(c).name; 
    gt_case=[currentDir '\Casos_combine\' cases(c).name]; %' 
    % ground truth combined 
    [~,~,~,volumeL,volumeR]=load_file(gt_case,0,ori); 
    ind= volumeR>0;volumeGT=volumeL;volumeGT(ind)=1; 
    [GT1 GT2 GT3]=ind2sub(size(volumeGT),find(volumeGT>0));GT=[GT1 GT2 GT3]; 

    segm_case=[currentDir '\Casos_img\' cases(c).name]; %' 
    [~,~,~,volumeL,volumeR]=load_file(segm_case,0,0); 
    ind= volumeR>0;volumeS=volumeL;volumeS(ind)=1; 
    [ASM1 ASM2 ASM3]=ind2sub(size(volumeS),find(volumeS>0));ASM=[ASM1 ASM2 ASM3]; 

    [hd,~]=HausdorffDist(GT,ASM); 
    ASMvGT=[ASMvGT;hd];%/numel(volumeGT)]; 

end 
save resultshd ASMvGT 

내가 LOAD_FILE 기능으로 볼륨을 얻을 수 없습니다 여기

는 코드입니다. 이걸 도와주세요. 미리 감사드립니다.

답변

0

사용 addpath(genpath("___address of main_folder___"))

은 위의 기본 폴더의 주소를 넣습니다. 코드의 첫 번째 줄을 위의 줄로 바꿉니다. 귀하는 서면으로 만 addpath('main')입니다. 따라서 하위 폴더를 추가하지 않으므로 오류가 발생하는 것일 수 있습니다. genpath은 하위 폴더 목록을 생성하므로 addpathgenpath을 결합하면 현재 폴더와 모든 하위 폴더가 추가됩니다.

+0

나는 그것을 시도했지만 작동하지 않는다. 폴더의 구조에 대해 설명 할 것이다. main_folder 폴더 안에 Casos_combine 폴더와 Casos_img 폴더가 있으므로 하위 폴더 내부의 데이터에 액세스해야합니다. Addpath ('main') 폴더 main 내에서 호출해야하는 함수가 있으므로이 함수를 사용하고 있습니다. 하위 폴더 Casos_combine 및 Casos_img에 어떻게 액세스 할 수 있습니까? – user1146895

+0

'addpath (genpath ('메인 폴더의 전체 경로 __'))''를 사용하십시오. 그렇지 않으면 가장 간단한 방법은 MATLAB 명령 창으로 이동하는 것입니다. 왼쪽에서 MATLAB의 현재 디렉토리를 볼 수 있습니다. 'Casos_combine'과'Casos_img'을 마우스 오른쪽 버튼으로 클릭하고'서브 폴더로 추가 '라고 말하십시오. –

1

chdirfullfile 명령을 사용하면 전체 경로와 함께 파일 이름을 만들 수 있습니다.

+0

감사합니다. 지금이 문제를 해결하십시오. – user1146895

관련 문제