2013-06-10 13 views
5

Mój obraz ma "odbicie światła", dwa pierwsze zera na obrazie mają trochę inne światło niż reszta obrazu. Kiedy przekonwertuję to na obraz binarny, ta część staje się biała i muszę uzyskać dokładny kontur liczby, a to przeszkadza. ow czy mógłbym rozwiązać to przy użyciu OpenCV?Co mogę zrobić, aby wyeliminować "odbicie światła" obrazu? używając OpenCV

obraz oryginalny https://docs.google.com/file/d/0BzUNc6BOkYrNNlE3U04wWEVvVE0/edit?usp=sharing

binarna wersja https://docs.google.com/file/d/0BzUNc6BOkYrNeEE0U3NvOElqa1E/edit?usp=sharing

Gdybym zwiększyć wartość progu, tracę numery po prawej stronie obrazu. Mój kod:

#include <opencv2/imgproc/imgproc.hpp> 
#include <opencv2/highgui/highgui.hpp> 

using namespace cv; 

int main (int argc, char **argv) 
{ 
    Mat im_gray = imread("img2.jpg",CV_LOAD_IMAGE_GRAYSCALE); 

    Mat im_rgb = imread("img2.jpg"); 
    cvtColor(im_rgb,im_gray,CV_RGB2GRAY); 

    Mat img_bw = im_gray > 90; 

    imwrite("image_bw2.jpg", img_bw); 

    return 0; 
} 
+5

Użyj progu adaptacyjnego – Blender

+0

Możesz użyć maski. Im mniej biały piksel, tym bardziej będzie czarny. To znaczy. zamieniasz obszary koloru brązowego i czerwonego na czarne. – William

Odpowiedz

2

Cienie i odblaski nie są łatwym zadaniem. Ale przy odrobinie dobrej pracy można je pokonać.

Kolejnym krokiem jest użycie obrazu z progiem jako maski w celu uzyskania kolejnego progowanego obrazu. Oto kilka kryteriów, które pracowały dla mnie:

  • Ograniczanie wszystko ale dominującym szczytem pikseli zawartych w histogramie związku pośredniego (co masz teraz) progowaniu obraz
  • Użyj pochodną znaleźć granice (cvSobel może pomóc)
  • użyć kombinacji ścisłego adaptacyjnych i liberalnej twarde obcinanie uwzględniać zmieniające się oświetlenie różnych częściach obrazu
0

rzeczywistości problem nie jest tak trudne w Twoim przypadku. Ponieważ masz tylko 10 różnych liczb, wytrenuj klasyfikator, aby je rozpoznać.

Do szybkiego startu można użyć http://blog.damiles.com/2008/11/basic-ocr-in-opencv.html

To zadziała, ponieważ defekty również powtórzyć w pewnym stopniu. Możesz trenować algorytm rozpoznawania obrazów z wadami i zapomnieć o ich usunięciu.