2012-08-09 1 views
0

안녕하세요, 관리되지 않는 이미지를 picturebox에 표시해야하는 관리되는 비트 맵 이미지로 변환해야하지만 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다"라는 예외를 throw하는 것으로 보입니다. 누구든지 그것에 대해 생각하고 있습니까? 예외를 throw하는 줄을 주석 처리했습니다.관리되지 않는 이미지를 관리되는 비트 맵 이미지로 변환하는 방법?

for (int i = 0; i < characters.Length; i++) 
        { 
         area = characters[i].Area; 
         UnmanagedImage numer = characters[i].Image; 
         System.Drawing.Image plateImage = numer.ToManagedImage();//Exception 
         numberplate = new Bitmap(new Bitmap(plateImage)); 
         pictureBox2.Image = numberplate; 
         pictureBox2.Refresh();        
        } 

전 C#과

UPDATE

for (int i = 0; i < characters.Length; i++) 
        { 
         area = characters[i].Area; 
         Bitmap numer = characters[i].Image.ToManagedImage(); 
         //System.Drawing.Image plateImage = numer.ToManagedImage(); 
         //numberplate = new Bitmap(new Bitmap(plateImage)); 
         pictureBox2.Image = numberplate; 
         pictureBox2.Refresh();        
        } 
+0

'numer'가 null임을 의미합니다. – logicnp

+0

'characters' 배열은 어떤 타입입니까? –

+0

[API 문서] (http://www.aforgenet.com/framework/docs/html/2e7a1649-557d-d716-637d-29ec276603c8.htm)에 따르면 'Blob.Image'는 'null'일 수 있으며 이 경우에는 BlobCounter.ExtractBlobsImage 오버로드로 시도 할 수 있습니다. –

답변

3

얘들 아 내가 Aforge.Net 포럼에 발견이 코드를 Aforge.net 프레임 워크를 사용하고 그것을 작동 듯 .

     BlobCounterBase bc = new BlobCounter(); 
        bc.FilterBlobs = true; 
        bc.MinHeight = 5; 
        bc.MinWidth = 5; 

        bc.ProcessImage(numberplate); 
        Blob[] blobs = bc.GetObjectsInformation(); 
        MessageBox.Show(bc.ObjectsCount.ToString()); 
        for (int i = 0, n = blobs.Length; i < n; i++) 
        { 
         if (blobs.Length > 0) 
         { 

          bc.ExtractBlobsImage(numberplate, blobs[i], true); 

          Bitmap copy = blobs[i].Image.ToManagedImage(); 
          pictureBox2.Image = numberplate; 
          pictureBox2.Refresh(); 
         } 
        } 
0
Bitmap managedImage = numer.ToManagedImage(); 
+0

제안을 시도해도 여전히 예외가 throw됩니다. –

+0

문자 란 무엇입니까 ?? 그것은 아마도 managedImage의 목록 일 수 있습니다 ... 그래서 UnmanagedImage numer = characters [i] .Image; 이것은 어떤 객체도 생성하지 않을 수도 있습니다. 디버깅을 시도해보십시오. – perilbrain

+0

나는 코드를 업데이트했으며 어디에서 toManagedImage()로 변환했는지 종료합니다. 문자 배열은 얼룩의 배열입니다. –