2014-10-06 2 views
0

Как определить и извлечь положение текста из изображений. Например, текст «pepsi» из изображения бутылки pepsi. http://www.csmonitor.com/var/ezflow_site/storage/images/media/content/2013/0321-new-pepsi-bottle.jpg/15343519-1-eng-US/0321-new-pepsi-bottle.jpg_full_600.jpgКак определить и извлечь положение текста из изображений в iOS

ответ

0

Сначала вам нужны две картины, подобные этому. Используйте canny в opencv или Photoshop.

enter image description here enter image description here

Затем сделайте фон разностей следующим

System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
    Mat model = Highgui.imread("D:\\BKDiff\\can1.jpg",Highgui.CV_LOAD_IMAGE_GRAYSCALE); 
    Mat scene = Highgui.imread("D:\\BKDiff\\can2.jpg",Highgui.CV_LOAD_IMAGE_GRAYSCALE); 
    Mat diff = new Mat(); 
    Core.absdiff(model,scene,diff); 
    Imgproc.threshold(diff,diff,15,1000,Imgproc.THRESH_BINARY); 
    int distortion = Core.countNonZero(diff); 
    Highgui.imwrite("D:\\BKDiff\\out.jpg",diff); 

После этого, вы получите это.

enter image description here

+0

Да, спасибо, что он работает отлично, теперь мне нужно нарисовать прямоугольную коробку на этом логотипе, который мы получили, как я могу это сделать. – user4897

+0

Я использую приведенный ниже код, чтобы найти ограничительную рамку cv :: Mat threshold_output; cv :: Mat m = img.clone(); cv :: blur (m, m, cv :: Размер (5,5)); std :: vector > контуры; std :: vector очки; cv :: findContours (m, контуры, CV_RETR_LIST, CV_CHAIN_APPROX_NONE); m.release(); для (size_t i = 0; i user4897

+0

Вы можете использовать подмат для извлечения текста. – zawhtut

0

Вы также можете увидеть следующую бумагу на Stroke Width transform. Его просто реализовать и дает довольно высокую точность.

Я вижу, есть также implementation.

+0

Да, спасибо, я попробую этот в opencv .. – user4897

Смежные вопросы