An PHP based Image Database
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.7 KiB

  1. //
  2. // Copyright (c) 2013 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/
  3. //
  4. // Permission to use, copy, modify, and/or distribute this software for any purpose
  5. // with or without fee is hereby granted, provided that the above copyright notice
  6. // and this permission notice appear in all copies.
  7. //
  8. // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  9. // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  10. // FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
  11. // OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  12. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
  13. // ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  14. //
  15. #include <opencv2/core/core.hpp>
  16. #include <opencv2/highgui/highgui.hpp>
  17. #include <opencv2/imgproc/imgproc.hpp>
  18. #include <tesseract/baseapi.h>
  19. #include <iostream>
  20. int main(int argc, char **argv) {
  21. if (argc!=2) {
  22. std::cerr << "Please specify an image" << std::endl;
  23. return -1;
  24. }
  25. cv::Mat image = cv::imread(argv[1]);
  26. if (image.empty()) {
  27. std::cerr << "Cannot open source image" << std::endl;
  28. return -1;
  29. }
  30. cv::Mat gray;
  31. cv::cvtColor(image, gray, CV_BGR2GRAY);
  32. cv::Mat final;
  33. cv::threshold(gray, final, 225, 255, cv::THRESH_BINARY);
  34. /*cv::namedWindow("Display window", CV_WINDOW_AUTOSIZE);
  35. cv::imshow("Display window", final);
  36. cv::waitKey(0);*/
  37. tesseract::TessBaseAPI tess;
  38. tess.Init(NULL, "eng", tesseract::OEM_DEFAULT);
  39. tess.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK);
  40. tess.SetImage((uchar*)final.data, final.cols, final.rows, 1, final.cols);
  41. char *out = tess.GetUTF8Text();
  42. std::cout << out;
  43. return 0;
  44. }