2012-09-26 1 views
1

배경을 전경에서 분리하여 이진 (흑백) 이미지를 만드는 데 약간의 처리를하는 이미지가 있습니다.Aforge는 하나의 이미지에서 얼룩을 얻고 다른 위치에서 같은 위치를 추출합니다.

AForge를 사용하여 처리 된 이미지에서 모든 얼룩을 감지하여 반환 할 수 있습니다.

원본 이미지를 가져 와서 "SourceImg"로 복사하고 배경을 분리하여 이진 이미지로 만든 다음 블랍 추출을 올바르게 수행 할 수 있습니다.

public static List<Bitmap> ApplyBlobExtractor(Bitmap SourceImg) 
    { 
     List<Bitmap> ImgLetters = new List<Bitmap>(); 
     AForge.Imaging.BlobCounter blobCounter = new AForge.Imaging.BlobCounter(); 

     // Sort order 
     blobCounter.ObjectsOrder = AForge.Imaging.ObjectsOrder.XY; 
     blobCounter.ProcessImage(SourceImg); 
     AForge.Imaging.Blob[] blobs = blobCounter.GetObjects(SourceImg, false); 

     // Adding images into the image list    
     AForge.Imaging.UnmanagedImage currentImg; 
     foreach (AForge.Imaging.Blob blob in blobs) 
     { 
      currentImg = blob.Image; 
      ImgLetters.Add(currentImg.ToManagedImage()); 
     } 
     return ImgLetters; 
    } 

내가 원하는 것은 그 얼룩 정보를 사용하여 원래의 처리되지 않은 이미지에서 위치를 추출하는 것입니다.

이상적으로는 쿠키 커터와 같은 blob을 사용하여 초기 처리되지 않은 이미지 파일에서 추출해야합니다.

답변

1

블롭의 이미지와 원본 이미지를 사용하여 AForge.Imaging.Filters.Intersect 클래스를 사용할 수 있습니다.

+0

젠장 ... 저기있는 필터가 있었 니? 나는 단지 그것을 손으로했다. –

0

이미지 처리 부분이 원본 이미지의 크기를 조정하지 않았다고 가정하면 자르기 사각형을 blob의 Rectangle 속성으로 설정하여 자르기 변환을 원래 이미지로 반복 적용하지 않는 이유는 무엇입니까?

+0

이 문제는 테두리 상자를 잡을 수 있지만 다른 테두리가 경계 상자 내에있을 수 있습니다. –