首页 > 其他分享 >coc仓库--pix2mat

coc仓库--pix2mat

时间:2023-07-18 23:55:52浏览次数:35  
标签:std mat2 mat -- chi coc api pix2mat cv

Pix *mat8ToPix(cv::Mat *mat8)
{
    Pix *pixd = pixCreate(mat8->size().width, mat8->size().height, 8);
    for(int y=0; y<mat8->rows; y++) {
        for(int x=0; x<mat8->cols; x++) {
            pixSetPixel(pixd, x, y, (l_uint32) mat8->at<uchar>(y,x));
        }
    }
    return pixd;
}
tesseract::TessBaseAPI *chi_api = new tesseract::TessBaseAPI();
  if (chi_api->Init("/usr/share/tesseract-ocr/4.00/tessdata/", "chi"))
  {
    fprintf(stderr, "Could not initialize tesseract.\n");
    exit(1);
  }
  cv::Mat mat ;
  //= cv::imread("/home/yuxian/study/cccc/c++pro/studyPro/333.png", 0);
  const std::string  ADB_IP = "cdc3f475";
  screenShot(&ADB_IP, &mat);
  gettime();
  
  
  cv::Mat mat2 (mat,cv::Rect(1577,37,240,60));
  std::cout <<"size = "<<mat.size<<std::endl;
  gettime();
  for (size_t i = 0; i < mat.rows; i++)
  {
    cv::Vec3b *p = mat.ptr<cv::Vec3b>(i);
    for (size_t j = 0; j < mat.cols; j++)
    {
      //std::cout << mat.at<cv::Vec3b>(i,j)  <<std::endl;
      if(253-p[j][0] > 30 || 233-p[j][1] > 30 || 255-p[j][2] > 30){
        mat.at<cv::Vec3b>(i,j) = cv::Vec3b (0,0,0);
      }
    }
    
  }
  cv::cvtColor(mat2,mat2,cv::COLOR_BGR2GRAY);
  
  
  Pix *image = mat8ToPix(&mat2);
  chi_api->SetImage(image);
  char *outText = chi_api->GetUTF8Text();
  std::string re = outText;
  //printf("OCR output:\n%s", outText);
  std::cout <<re <<std::endl;
  gettime();
  cv::imwrite("../4444.jpeg",mat2);

标签:std,mat2,mat,--,chi,coc,api,pix2mat,cv
From: https://www.cnblogs.com/yuxiannana/p/17564469.html

相关文章

  • 代码随想录算法训练营第57天 | ● 647. 回文子串 ● 516.最长回文子序列 ● 动
     第九章 动态规划part17●  647. 回文子串  ●  516.最长回文子序列●  动态规划总结篇 今天 我们就要结束动态规划章节了,大家激不激动!!!   详细布置   647. 回文子串    动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。https:......
  • 洛谷 P2458 [SDOI2006] 保安站岗 - 树形DP
    P2458保安站岗思路:树形DP三个状态:dp[i][0]:节点i位置放保安的最小花费dp[i][1]:节点i位置不放保安,但被子节点的保安看守dp[i][2]:节点i位置不放保安,但被父节点的保安看守状态转移:dp[i][0]:节点i位置放保安,那么它可以合并子节点任何状态的最小值;dp[i][1]:节点i位......
  • 代码随想录算法训练营第58天 | ● 739. 每日温度 ● 496.下一个更大元素 I - 第1
     第十章 单调栈part01 ●  739. 每日温度 ●  496.下一个更大元素 I    详细布置    739. 每日温度  今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。 大家可以读题,思考暴力的解法,然后在看单调栈的解法。 就能感受出单调栈的巧妙 ......
  • 代码随想录算法训练营第59天 | ● 503.下一个更大元素II ● 42. 接雨水 - 第10章
     第十章 单调栈part02 ●  503.下一个更大元素II ●  42. 接雨水    详细布置   503.下一个更大元素II  这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做 https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%......
  • coc仓库--fork子进程
    fork子进程原函数voidforktest(int*i,pid_tparentid){tesseract::TessBaseAPI*chi_api=newtesseract::TessBaseAPI();if(chi_api->Init("/usr/share/tesseract-ocr/4.00/tessdata/","chi")){fprintf(stderr,"Cou......
  • 代码随想录算法训练营第60天 | ● 84.柱状图中最大的矩形 - 第10章 动态规划part03
     第十章 单调栈part03有了之前单调栈的铺垫,这道题目就不难了。  ●  84.柱状图中最大的矩形   今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。  ......
  • 冲刺数学建模(1)
    MATLAB基础操作开始时间2023-07-18 21:08:59结束时间2023-07-18 23:34:43前言:出去完了好几天,又在家里躺了两天尸,稍微认真学一点吧,简单开个新篇章,呜呼!A.1Matlab帮助的使用1helpelfun%关于基本函数的帮助信息2helpexp%指数函数exp的帮助信息1.help1当要查......
  • 云拨测全面升级丨单次拨测低至 0.001 元
    作者:少焉随着云原生、微服务技术的发展,可观测需求变得越来越强烈,作为可观测技术的重要能力之一,云拨测(SyntheticsMonitor)由于其零侵入、开箱即用、主动式监测手段,也受到很多用户的青睐,很多通过云拨测主动监测自身服务的可用性,先于用户发现线上异常;也会通过云拨测分析和优化网页加......
  • 小迪安全17-21集重要知识点
    sql注入#加解密,二次,DNSlog注入加解密:在注入时通常把注入语句修改为对应的加密形式因为在php源代码中有解密的操作然后才带入数据库进行查询二次注入:二次注入一般是用于白盒测试、黑盒测试就算是找到注入也没办法攻击。 #堆叠查询注入只有部分数据库支持堆叠注入一般......
  • 免费使用cloudflare搭建OpenAI的接口代理
    由于GFW以及OpenAI官方的封禁,我们在国内服务器是访问不通OpenAI的官方接口的之前,我一直是使用一个网上找的第三方代理域名,但是担心使用别人的代理不安全、不稳定现在,我们可以使用cloudflare自己搭建一个OpenAI代理服务,使用我们自己的转发代理第一步:注册cloudflare账号前往官方......