2014-02-12 4 views
0

C#의 웹캠을 통해 캡처 한 이미지가 거의 없습니다. 이 이미지들에 대해 몇 가지 처리를하고 싶습니다. 검은 색이 아닌 이미지에서 픽셀을 삭제하고 싶습니다.이미지의 특정 컬러 픽셀 바꾸기

검은 색이 아닌 픽셀이나 흰색 영역으로 대체 할 수있는 방법을 알려주십시오.

예 : I 변환 할

enter image description here

그리고 그것을 좋아 :

enter image description here

+0

국경도 검은 색입니다. 어떻게 이미지에 검은 entites를 * 분리 할 것입니까? http://opencv.org/ 및 상대 .net 랩퍼가 인터넷에서 availble – Tigran

답변

1

가장 쉬운 방법은 모든 픽셀을 거쳐 '허용 된'색상 범위에 있는지 확인하는 것입니다. 예를 들어

: 위의 코드는 흰색 픽셀 검은하지 않은 영역을 대체 할

var YourImage = (Bitmap)Image.FromFile("LicensePlate.png"); 

for (var x = 0; x < YourImage.Width; x++) 
    for (var y = 0; y < YourImage.Height; y++) { 
     var pixel = YourImage.GetPixel(x, y); 
     if (pixel.r > 200 && pixel.g > 200 && pixel.b > 200) 
       YourImage.SetPixel(x, y, Color.White); 
    } 

.

+0

이것은 slooooooow가 될 것입니다. GetPixel/SetPixel 메서드는 정말 느립니다. – paghdv

0

OpenCV 용 EmguCV wraper는 좋은 시작이며, 번호판을 통해 대부분의 경우를 안내해줍니다. 좀 더 튼튼한 (조명의 변화) 무언가를 원하면 늑대의 이진화를 추가하는 것이 좋습니다. 나는 그것이 EmguCV에 구현되었는지는 모르지만, EmguCV를 사용하여 C#에 적응하기 쉽도록 http://liris.cnrs.fr/christian.wolf/software/binarize/ 에 사용할 수있는 C++ 코드가 있습니다.