tesseract چیه ؟! - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

tesseract چیه ؟!

+2 امتیاز
سلام .

دوستان کسی در مورده ocr tesseract اطلاعاتی داره ؟

ممنون میشم اگر کسی میدونه بگه .
سوال شده اسفند 27, 1392  بوسیله ی nomad811 (امتیاز 38)   2 3 4
کسی نبود ؟

2 پاسخ

+4 امتیاز
 
بهترین پاسخ

tesseract یکی از بهترین engine های متن باز OCR هستش این موتور در شرکت HP  با زبان Ansi C طراحی شده در سال 2005 توسط شرکت گوگل متن باز شد.

بعد از متن باز شدن یکی از توسعه دهنده اصلی این موتور Ray smith هستش که کد های جدید را با c++ اضافه کرده این OCR از جمله پروژه های سنگین هوش مصنوعی هستش. البته عربی را هم ساپورت می کنه من خودم چندین ماه با این موتور کار کردم 600 تا سورس و هدر داره و همش هم الگوریتم های هوش مصنوعی هستش.

ابزار های مجرایی برای آموزش کلاسیفیر ها مختلف خودش داره .البته این موتور layout analisys نداره .سفرشی کردن این موتور به شدت دشواره تا جاییکه از Ray smith توی فروم گوگل خواستند که کل سورس را به c++ تبدیل کنه گفته که همچین کاری از تواناییش خارجه واقعاً سمت توسعه این موتور نرید.

پاسخ داده شده اسفند 27, 1392 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد فروردین 16, 1393 بوسیله ی haniye sarbazi
خیلی ممنون .
 از توضیحاتتون ممنونم واقعا .
من میخواستم یه پردازش تصاویر تو برنامه اندرویدی ک دارم مینویسم به کار ببرم . چون خودم زیاد با پردازش تصویر اشنا نبودم گفتم شاید یه ocr اماده ای چیزی پیدا کنم ک بهم کمک کنه .
تو نت ک چرخ زدم به این برخوردم !
به نظر شما ک باهاش کار کردی میشه ازش استفاده کرد یا یا خودم برم دنبال مثلا open cv و پردازش تصویرو از اول شروع کنم ؟!
یا کلا برداشتم از این موضوع اشتباه بوده ؟
بدون داشتن اطلاعات درباره پردازش تصویر بعید میدونم بتونین از این ocr استفاده کنین ...
شما اول باید مبانی پردازش تصویر رو یاد بگیرین بعد  هم نحوه کار کردن با کتابخونه هایی مثل opencv .
ممنون . به نظر شما در کنار یادگیری opencv چی باید یاد بگیرم ؟
وبعد از یادگیری اونها برم سراغ این ocr ، درسته ؟
0 امتیاز

مثال در c++:

std::string read_image(const cv::Mat& image){
    cv::Mat gray;
    cv::cvtColor(image, gray, CV_BGR2GRAY);
    cv::Mat binary;
    cv::threshold(gray, binary, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
    cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
    cv::morphologyEx(binary, binary, cv::MORPH_CLOSE, element);
    cv::morphologyEx(binary, binary, cv::MORPH_OPEN, element);
    cv::Mat result;
    cv::bitwise_not(binary, result);
    cv::imshow("result", result);
    cv::waitKey(0);
    cv::destroyAllWindows();
    tesseract::TessBaseAPI tess;
    tess.Init(".", "eng", tesseract::OEM_DEFAULT);
    tess.SetImage(result.data, result.cols, result.rows, 1, result.cols);
    tess.SetRectangle(0, 0, result.cols, result.rows);
    char* out = tess.GetUTF8Text();
    std::string result_string(out);
    delete[] out;
    return result_string;
}

مثال در پایتون :

def read_image(image):
    #read image by opencv
    img = cv2.imread(image)
    #convert image to gray scale
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    #read image by tesseract
    text = pytesseract.image_to_string(gray)
    return text

 

پاسخ داده شده تیر 23, 1401 بوسیله ی copilot (امتیاز 1,549)   1 3 6
...