目前开发环境paddleocrV5版本,c++ qt6.10.1版本,paddle3.2.0版本,Win11,实现了具有下面这些功能的小软件

  • 支持pdf、常见图像格式的文件文本识别
  • 支持server/mobile模型切换
  • 支持不识别(rec)只检测文本(det)
  • 支持同目录文件切换
  • 支持文件预览
  • 支持可视化文本识别框
  • 支持识别结果完整展示:识别文本、置信度、识别框位置
  • 支持识别文本一键复制到剪切板

后续完善计划:

  • 升级到paddleocrV6版
  • 部署到云服务器
  • 支持字段搜索
  • 适配多方向文本
  • 上传github账号训练git操作

工作方面:

此前使用的是cpp+qt写工控软件,软件岗,主要负责整个软件项目维护,用教育版的copilot基本能解决很多问题,我自己也能打log排查挺大部分问题;平时安排的事情比较少,工期不紧,可以专心解bug或者加新功能,但也是因为没有压力,且我本人也不太好问、自律性很一般,公司也只有我一个软件人员,所以直到离职,我对项目的整体把控还是不太够;

近期进来新公司后变成了c#winf写工业控制软件,虽然是算法岗,但是目前阶段工作还是偏向理清公司项目业务,整体项目业务逻辑比前公司要复杂很多,需要考虑的因素更多,机械电气电子算法软件部分都不太完善。现在任务计划也安排的很密很庞大,各类问题还在的项目居然要拿生产结果指标验收成果,压力颇大。不过好在有任务做,不会陷入无目的的发散性学习。坏就坏在公司不太切实际,当前目标计划表安排的工期完全和当前的全职人员水平不符合,且原班非核心人马技术一般傲气太高,由其是原班非研发岗人员,依仗信息差这一优势姿态相当高,天天对我们新人研发指手画脚,实际上他就只是一个应用人员,对项目的整体把控经验为0;过去的开发文件和各种资料经验这些信息差,他们是完全没有给我们新人提供任何一点,所以他们可以说实际上对项目团队协作没有任何推进帮助,只会催和甩锅。底层图像识别、控制实现被代码权限卡死看不到。现在ai模型换成了付费的dsV4flash+Claude Code。经过一个月的磨合现在感觉对付工作足够,加上gpt的外置大脑能完成一些比较复杂的工作了。

两者的相似之处是对机器视觉要求高,也都没有直属上司或同事能和我协同开发。这也是我比较薄弱的点,一是图像处理基础不行,二是没有机器视觉相关经验。

所以我觉得7月份的计划就要考虑钻研halcon去实现基本图像处理操作,不能太过依赖ai写的脚本,现在ds和gpt写的halcon脚本都不太能一次跑通,存在的问题比较大,即便反复和ai对结果修改几次也无济于事。待完成了图像处理的基础强化,以及halcon的使用学习,后续对于ai编写的code才能够更好的审核以排查问题。

生活方面:

梅雨季外加天天加班赶进度,确实少了很多骑行时间。每天回来保底21点,熬夜到两三点是常态,感觉不能再长期这样了,心脏可能会受不了。

没地方做饭,只能吃食堂,加班也不能去亲戚朋友家蹭饭,最近瘦了很多。

习惯方面

自打来了新公司,部分习惯变差了很多,通勤喜欢偷懒睡懒觉然后打车踩点上班,这个需要早点调整。

在家会刷一段时间短视频再玩游戏再洗澡睡觉,需要大幅减少无意义短视频时间,要么学,要么认真玩,不要贪图即时娱乐。

兴趣方面

没有新的兴趣爱好,还是独爱骑行。现在骑行就是看看风景吹吹风,不想追求速度,安全第一,山地车比的是耐力不是速度,骑快了除了能发动态炫耀也没有什么作用(我也几乎不会发动态)。

工作:

  1. 逐渐熟悉项目逻辑了,但是硬件、光学、图像处理的基本概念原理还不太懂,所以阅读代码即便语法过关也看不明白参数的含义;
  2. 跟同事关系还行,但是很明显的就是自己学习进度太慢了,工作效率偏低,现在正是起步阶段,真心建议不要每次都似在起步这里;

思考:

  1. 省钱是好,但是过度地精打细算,想要拿到最大优惠、最优性价比 因而损失的时间成本也很高,不要因小失大;
  2. 还是省钱这事,如果什么东西出现质量问题导致较为严重影响工作效率、生活质量,赶紧掏钱解决,不要硬凑合,起步阶段的抠门,换来的是效率低下成长缓慢,纯纯让自己过得很憋屈;

生活:

  1. 会炒简单的菜了,但是调料量是随意放的,做菜步骤也很随意,菜的口味一般,辣椒炒牛肉/猪肉和辣椒炒蛋一个味道;
  2. 煮饭终于发现内胆底下有刻度,不会煮成粥或者煮干粘锅了;
  3. 睡觉吃饭时间还是非常阴间,跟大学没两样,得改

用到的工具版本号:cmake 3.18.0 vs2019社区版 16.11.21 opencv 4.12.0(按生成的world版本号应该是这个,但是不知道为什么官网release目录下没找到这个版本 ::(疑问) )

  1. 先在gitbash执行git clone https://github.com/opencv/opencv指令把源码扒下来
  2. 找到文件保存的位置(跟系统搜索栏进入cmd里的目录是同一个位置,我这里是C:\Users\1,1是我的用户名),打开cmake-gui,源码位置填opencv主目录,build目录指定一个另外的目录
  3. Add entry加入键名"DOPENCV_DOWNLOAD_MIRROR_ID",类型STRING,键值"gitcode"(这个换gitcode镜像源不确定有没有用,csdn的东西我不好评价)
  4. entry里面勾选BUILD_opencv_world,这个是导入vs项目lib库时用到的,相当于把其他所有opencv依赖库整合在一起了,导入时只填这个opencv_world版本号.lib库就可以了
  5. configure选择vs2019、x64,完了再generate,没成功多试几次
  6. 接着点open project会自动打开生成的vs2019解决方案,按自己需求vs配置选x64-release或者x64-debug啥的
  7. 先右键生成ALL_BUILD项目,再右键生成INSTALL项目,然后就会在build目录底下生成一个install文件夹
  8. 把install文件夹底下的include文件夹直接复制到自己项目主目录
  9. ./install/x64/vc16/lib下的opencv_world4120.lib复制到自己项目主目录的lib目录下
  10. ./install/x64/vc16/bin下的opencv_world4120.dll复制到自己项目x64/release和x64/debug目录下
  11. Vs2019右键项目属性c/c++→常规→附加包含目录,加上项目主目录下include的地址
  12. 链接器→常规→附加库目录,加上主目录下lib的地址
  13. 链接器→输入→附加依赖项,加上opencv_world4120.lib,再点确认或者应用即可完成opencv导入vs2019

配环境一生之敌 ::(酸爽)

2025-06-30:写完这篇文章后发现,虽然编译成功了,能够正常使用libtiff库,但是libtiff库默认不支持jpeg格式,所以如果需要libtiff能够解析jpeg格式文件,需要附带jpeg进行编译,这个我还没有完全实现。待填坑ing……

背景:Windows11、VS2019、已成功安装libtiff库但无法解析使用了JPEG压缩的tiff或者svs图像

使用libtiff库时报错:
xxx.tiff: JPEG compression support is not configured.

问题出现的原因是libtiff库本身不支持JPEG压缩,所以需要额外安装JPEG压缩第三方库

步骤:
1.首先是安装并解压 JPEG压缩包,点击界面上的 jpegsr9f.zip 链接就会自动下载zip包
2.打开vs2019的“Developer Command Prompt for VS 2019”工具(系统搜索能搜到)
3.cd到jpeg-9f这个目录
4.键入命令行 nmake /f makefile.vs setup-v16 ,当前目录下会自动生成一个jpeg.sln
5.用vs2019打开jpeg项目,配置改成release x64,右键项目生成
6.测试是否成功:vs2019打开jpeg-9f目录下的apps.sln,全部生成
7.还是用第二步的工具,在jpeg-9f/这个目录下,执行命令 nmake /f makefile.vs test-64
8.若出现下面这个结果则表示JPEG库编译成功

Microsoft (R) 程序维护实用工具 14.29.30147.0 版
版权所有 (C) Microsoft Corporation。  保留所有权利。

        IF EXIST .\Release\testout* del .\Release\testout*
        .\Release\x64\djpeg -dct int -ppm -outfile .\Release\testout.ppm testorig.jpg
        .\Release\x64\djpeg -dct int -gif -outfile .\Release\testout.gif testorig.jpg
        .\Release\x64\djpeg -dct int -bmp -colors 256 -outfile .\Release\testout.bmp testorig.jpg
        .\Release\x64\cjpeg -dct int -outfile .\Release\testout.jpg testimg.ppm
        .\Release\x64\djpeg -dct int -ppm -outfile .\Release\testoutp.ppm testprog.jpg
        .\Release\x64\cjpeg -dct int -progressive -opt -outfile .\Release\testoutp.jpg testimg.ppm
        .\Release\x64\jpegtran -outfile .\Release\testoutt.jpg testprog.jpg
        fc /b testimg.ppm .\Release\testout.ppm
正在比较文件 testimg.ppm 和 .\RELEASE\TESTOUT.PPM
FC: 找不到差异

        fc /b testimg.gif .\Release\testout.gif
正在比较文件 testimg.gif 和 .\RELEASE\TESTOUT.GIF
FC: 找不到差异

        fc /b testimg.bmp .\Release\testout.bmp
正在比较文件 testimg.bmp 和 .\RELEASE\TESTOUT.BMP
FC: 找不到差异

        fc /b testimg.jpg .\Release\testout.jpg
正在比较文件 testimg.jpg 和 .\RELEASE\TESTOUT.JPG
FC: 找不到差异

        fc /b testimg.ppm .\Release\testoutp.ppm
正在比较文件 testimg.ppm 和 .\RELEASE\TESTOUTP.PPM
FC: 找不到差异

        fc /b testimgp.jpg .\Release\testoutp.jpg
正在比较文件 testimgp.jpg 和 .\RELEASE\TESTOUTP.JPG
FC: 找不到差异

        fc /b testorig.jpg .\Release\testoutt.jpg
正在比较文件 testorig.jpg 和 .\RELEASE\TESTOUTT.JPG
FC: 找不到差异...