- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 OpenCV实现鼠标滚轮图片拖放和放大缩小
调用OpenCV的highgui封装成一个类,开箱即用,OpenCV大于2.4的版本即可使用,支持静态图片、动态视频,支持多窗口。支持回调函数做算法处理。源码有偿 需要的私信。
2024-09-14 15:19:55 266
原创 OpenCv实现Halcon的derivate_gauss函数
数值与Halcon的输出结果一摸一样、运行速度为Halcon的1-1.5倍。我的 68ms (可提供纯C实现 和Halcon速度无差别)测试图片大小4656*3496单通道。私信我 提供测试dll 验证后再购买。测试CPU i5-10400F。
2024-06-13 11:48:19 236 1
原创 Stm32 全局变量被修改
最终发现是那个厂家提供的 绘制算法有BUG (没有判断 x和y超过数组的情况)导致数组越界 贴上这组代码 挂上耻辱墙 红色部分是我后加的。检查到Keil上的 RW-DATA和ZI-Data=30812Byte=30KB左右。算上栈的1KB(0x400)和堆的512B 应该不会溢出才对(查看汇编文件可知)(占用的 flash =Code + RO-data + RW-data)然后我的全局数组又定义在它的下面 所以导致我前面的数值异常。(占用的 ram = RW-data + ZIdata)
2024-04-02 14:48:33 975
原创 Qt Android在安卓平板上通过串口调用嵌入打印机EM5820
所以找了比较多的资料,得到需要使用Java的jar驱动才能调用这个串口。然后这个驱动又是有芯片之分的,根据不同的芯片需要调用不同厂商的jar包。我上面推荐的链接是CH340芯片,我这里选用沁恒的CH340Jar驱动。没错,我这个大聪明开始也是这样想的。事实是,qt android 压根就没实现QSerialPort的功能,你甚至连枚举都无法进行。我这里的操作是直接写一个Java的类 然后通过import jar中的类来进行操作。3、下一步就是用Qt Android调用Jar 并完成串口的打开和读写操作了。
2024-03-26 16:27:53 318
原创 win11 wifi怎么都连不上的一个可能性
然后电脑连接控制设备网关是192.168.1.1的 这两个在公司的时候并不冲突,但是到了客户现场 想连wifi时,因为客户的wifi网关是192.168.1.1 所以会和自身带的控制设备发生冲突,导致wifi一直连接失败。最近做的一个项目 在公司的时候 电脑无线连接正常,但是到了客户现场后,就发现wifi始终连接不上导致无法进行远程调试。所以win11 wifi连接不上 需要排除下是不是 电脑上还插着一个固定ip的网络设备。后来发现问题原来是在公司的wifi网关是192.168.7.1的。
2024-03-19 13:10:00 423
原创 STM32F103ZET6使用LVGL渲染Bug记录
渲染画面会发生撕裂,纠结了好久,起初认为是帧缓冲区不够,加大后并没有什么卵用。当使用lv_make_color()给文字和外边框赋颜色时,硬件:正点原子STM32F103ZET6最小系统开发板。后来发现 当使用除黑色以外的其他颜色时,撕裂现象不见?渲染库:LVGL 版本未知。
2023-12-02 14:04:59 310
原创 AVX优化矩阵乘法
1.看了OpenBlas的矩阵乘法优化 尝试写下AVX版本的矩阵优化2.在单线程情况下 单精度 10001000的矩阵乘10001000 运行100次 取平均值Pytorch-Mkl 23.msNumpy(应该也是用的MKL) 23.ms我的 38.ms以下贴上代码void addDot8x8Pack(int k, float *A, float *B, float *C, int n) { int p; float *bp0_pntr = B; __m256
2022-11-24 16:37:58 2569 2
原创 PaddlePaddleOCR在Qt中中文乱码快速解决
先根据我的另一篇文章PaddlePaddleOCR使用C++预测库中文乱码快速解决对字典库进行转码出现中文乱码的一个原因之一:在Qt中采取动态库的形式调用PaddlePaddleOCR C++预测库但是PaddlePaddleOCR C++预测库采用CMake MSVC编译器生成Sln然后进行ReBuild主要原因在于将 std::string 转换为QString时没有指定解码方式你需要调用以下语句 以Local8Bit的模式去加载std::string的c_str //识别到的字符
2022-05-09 16:39:39 1167
原创 PaddlePaddleOCR使用C++预测库中文乱码快速解决
打开推断文件夹中的Key文件右键另存为 选择ANSI编码格式 就可以在例程中以string输出正常中文
2022-02-09 09:46:46 1884 1
原创 ifstream 读取中文路径
#include <Windows.h>#include <iostream>#include <fstream>void readChineseUrl(){ wchar_t w_buf[256]; std::string d = "C:\\中文.txt"; size_t lengthUnicode = MultiByteToWideChar(CP_ACP, 0, d.c_str(), d.size(), NULL, 0); wchar_t* sz
2021-11-05 08:30:04 1497
原创 OpenCV实现PS2018中的SmartBlur美颜算法
//不处理边界void smartBlur(Mat &Img, Mat &OutImg, int Radius, int Threshold) { OutImg.create(Img.size(),CV_8UC3); for (int i = Radius; i < Img.rows - Radius; i++) { uchar *curPtr = Img.ptr<uchar>(i); uchar *outPtr = OutImg.ptr<uc
2021-10-16 17:34:13 1064
原创 3D曲面泊松重建源码编译
博主用的环境是 Win10 VS2017 系统内存至少要16G+源码下载博主编译的版本是v13.72 目前最新版下载完文件后 解压 双击SLN打开项目 因为博主是VS2017 你需要切换平台工具集版本 若你是VS2019则不需要切换工具集版本记住每个子项目都切换工具集版本这时候如果你点击生成 会提示编译器 堆空间不足你需要在文件夹里找到这两个vcproj 然后打开它找到Global属性加上红框的这条然后在点击重新生成 就可以成功编译 编译完EXE在根据官网提示指令进行cmd操
2021-09-04 09:02:20 741 6
原创 AVX-实现_mm256_abs_ps
static const _declspec(align(16)) int _ps256_inv_sign_mask[8] = { ~0x80000000, ~0x80000000, ~0x80000000, ~0x80000000 ,~0x80000000, ~0x80000000, ~0x80000000, ~0x80000000 };__m256 _mm256_abs_ps(__m256 x){return _mm256_and_ps(x,*(__m256 *)_ps256_inv_sign_m
2021-08-16 15:29:07 440
原创 相机标定之单应性矩阵求取
//imgx 图像坐标点//xw 世界坐标点void getHomoMatrix(vector<float> &imgx,vector<float> &imgy,vector<float> &xw,vector<float>&yw){ Mat hom; Mat m(2*ix.size(), 9, CV_32F); for (int i = 0; i < ix.size()*2; i += 2) { f
2021-08-06 11:28:49 876
原创 LibTorch GPU版本和Qt的配置
将libtorch gpu版本编译成dll后 给qt调用 就能避免头文件异常的情况可以将官方的CMakeList修改下cmake_minimum_required(VERSION 3.12 FATAL_ERROR)project(ExampleDLL )//指定你系统盘上的libtorch位置set(CMAKE_PREFIX_PATH -A x64 "X:\\libtorch\\share\\cmake\\Torch")find_package(Torch REQUIRED)find_pac
2021-07-27 09:34:33 1004
原创 VS2017配置OpenBlas
前置参考文章 VS配置OpenBlas上面的文章显示配置失败 会提示缺少dll对应的DLL在作者提供的下载链接中下载下对应位数的MinGw 解压里面的DLL文件 放到运行目录下
2021-02-21 08:45:34 487 1
原创 关于LibTorch训练参数无法更新
可能原因是构造函数里没有注册模型到参数中NormModuleImpl::NormModuleImpl() : mc{ torch::nn::Conv2d(torch::nn::Conv2dOptions(1,32,3).stride(1).padding(1)), }{ //没写这句代码 模型参数不work register_module("ds", mc);}int main(){ Adam optimizer(ae->parameters()); retur
2021-01-23 08:16:27 240
原创 Qt ModbusTcp的异步转同步处理
//发送写入请求 auto *reply=client->sendReadRequest(writeUnit,1); if(reply==nullptr){ return; } /* 错误用法-》用循环去等待它的数据返回 */ //增加事件循环点 QEventLoop eventLoop; connect(reply, &QModbusReply::finished,&eventLoop,&am.
2021-01-14 11:07:11 1080
原创 Libtorch+Qt 踩坑记录
1.在引入头文件#include <torch/torch.h> //必须要在QObject头文件的前面 不然一直报错#include <QObject> class XXX{}同时在其他类中引入XXX头文件时 也必须在所有头文件的上面#include <XXX.h> //必须在所有头文件的最上方#include <QGuiApplication>#include <QQmlApplicationEngine>#includ
2020-09-19 08:38:33 770 1
An Unbiased Detector of Curvilinear Structures.pdf
2021-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人