2014-02-12 284 views
0

我通過C#中的網絡攝像頭捕獲了幾張圖像。我想對這些圖像做一些處理。我想從不是黑色的圖像中刪除像素。替換圖像中的特定顏色像素

請告訴我如何刪除不是黑色的像素或區域,並將其替換爲白色。

例子:

enter image description here

而且我希望把它轉換喜歡:

enter image description here

+0

但邊界也是黑色的,你將如何在圖像上分離黑色實體的*語義*。我會建議看看:http://opencv.org/和相對.net包裝上網 – 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封裝器是一個很好的開始,牌照應該讓你通過大多數情況。如果你想要更強大的東西(改變照明),我會建議你添加狼的二值化。我不知道它是否在EmguCV中實現,但有C++代碼可用於http://liris.cnrs.fr/christian.wolf/software/binarize/ ,這將很容易適應使用EmguCV的c#。