0

나는 이미지 처리에 상당히 익숙하며, 나는 최근에 AForge 라이브러리를 발견했다. 나는 2 개의 이미지 사이의 기본적인 비교를 시도해 왔으며 그것들 사이의 유사성 백분율을 반환하기를 원한다. 그러나 빈 배열을 가져온 결과로 끊임없이 Index Out of Bounds 예외가 발생하지만 ex.ProcessImage이 빈 배열을 반환하는 이유가 확실하지 않습니다. 필자는 설명서에 제공된 예제 코드를 거의 복제했지만 아직 오류가 있습니다.AForge로 이미지 처리 : 빈 배열?

static class Run 
{ 
    public static void go() 
    { 
     string filename1 = null; 
     string filename2 = null; 

     filename1 = "a.a.jpg"; 
     filename2 = "b.b.jpg"; 

     Bitmap image1 = new Bitmap(filename1); 
     Bitmap image2 = new Bitmap(filename2); 

     ExhaustiveTemplateMatching ex = new ExhaustiveTemplateMatching(0); 
     TemplateMatch[] match = ex.ProcessImage (image1, image2); 

     float similarity = match[0].Similarity; //where the error occurs 

     Console.WriteLine("They are" + similarity + "% similar."); 
    } 
} 

내가 될 것을 상상 수있는 유일한 방법 내 비트 맵을하고있는 중이 야 : 여기 내 코드입니다. 하지만, 나는 그걸 제대로했다고 믿습니다. 또한 비트 맵을 초기화하는 다른 방법을 시도했지만 여전히 동일한 오류가 발생합니다.

아마 내가 깨닫지 못하는 어리석은 실수 일 수도 있지만 도움을 주시면 감사하겠습니다.

+0

이 문제의 원인을 정확히 파악하지 못했지만 동일한 코드로 새 프로젝트를 만들었습니다. 그래서이 질문에 더 이상 대답 할 필요가 없습니다. –

답변

0

IndexOutOfRangeException이 표시되는 경우 ex.ProcessImage은 빈 배열을 반환했습니다. 그 다음으로해야 할 일은 왜 작동하는지입니다. 아마도 옆으로,이 코드가 무의미 longwinded 바와 같이

... 더 템플릿이 일치하지가 있습니다 : 같은

string filename1 = "a.a.jpg"; 
string filename2 = "b.b.jpg"; 
+0

원래 파일 이름을 입력 한 다음 원래대로 제거했기 때문에 그렇게했습니다. "왜"내가 알아 내려고 노력하고 있습니다. –

+0

@ NathanPrice : 그렇다면 질문은 IndexOutOfBoundsException에 관한 것이 아닙니다. "ExhaustiveTemplateMatching이 빈 배열을 반환하는 이유는 무엇입니까?" –

+0

좋아요, 제 질문은 제가 찾고있는 것에 대해 올바르지 않았다는 것을 유감스럽게 생각합니다. 이를 반영하기 위해 지금 편집하겠습니다. –

0

저장을 이미지 :

string filename1 = null; 
string filename2 = null; 

filename1 = "a.a.jpg"; 
filename2 = "b.b.jpg"; 

그것은 같은 짧고 명확 할 것이다. bmp를 입력하고 다시 시도하십시오.

string filename1 = "a.a.bmp"; 
string filename2 = "b.b.bmp";