// // Created by UnknownObject on 2022/11/4. // Copyright (c) 2022 UnknownNetworkService. All rights reserved. // #include "ocr_text.h" bool OCRSupport::PixelCheck(const cv::Vec3b &pixel) { if (pixel[0] <= limit) if (pixel[1] <= limit) if (pixel[2] <= limit) return true; return false; } cv::Mat OCRSupport::ConvertImage(const cv::Mat &img) { cv::Mat result(img.size(), img.type()); for (int r = 0; r < img.rows; r++) { for (int c = 0; c < img.cols; c++) { if (PixelCheck(img.at(r, c))) result.at(r, c) = cv::Vec3b(0, 0, 0); else result.at(r, c) = cv::Vec3b(255, 255, 255); } } return result; } extern "C" JNIEXPORT jstring JNICALL Java_com_uns_maincar_cpp_1interface_EnvTest_OCRTextTest(JNIEnv *env, jclass _this) { std::string version = "OCR Text Library Found, Version: " + std::string(OCR_TEXT_VERSION); return env->NewStringUTF(version.c_str()); } extern "C" JNIEXPORT jobject JNICALL Java_com_uns_maincar_cpp_1interface_OCR_ProcessImage(JNIEnv* env, jclass _this, jobject image) { cv::Mat source; OCRSupport ocr_supp; BitmapToMat(env,image,source); cv::Mat img = ocr_supp.ConvertImage(source); jobject bmp = GenerateBitmap(env, img.cols, img.rows); MatToBitmap(env, img, bmp); return bmp; }