- 博客(157)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 使用Qt调用HslCommunication(C++调用C#库)
该报错是Qt中的库和CLR有冲突,所以需要把调用C#的dll另外再封装为一个dll做隔离;“公共语言运行时支持(/clr)”和“符合模式”设置为“否”;运行时在这里崩溃,头文件不要暴露CLI的相关库,用纯虚基类或IMPL;10、本机正常运行后拷贝到其他电脑后运行崩溃,需要安装.net;1、开发时VS需要安装CLI项目库,不然新建项目时找不到;3、把调用C#的dll用C++再封装为一个dll;1、实现C#封装一个调用hsl的dll;2、实现C++控制台调用C#的dll库;4、最后再用Qt调用c++的dll;
2025-03-05 18:13:40
425
原创 YOLOV8目标检测C++推理问题总结
问题:如图,针对同一张图片,上图为python直接预测的结果,下图为OpenCV的DNN推理结果(ONNXRuntime也和下图差不多),和结果差异很大,原因未知。注意把#include <torch/torch.h>放到include "opencv.hpp"前面,不然也会冲突报错。数据集有限,使用paddleOCR直接识别准确率无法达到99%,这里尝试用目标检测对识别得分比较低的图片进行二次处理;类别数目:数字(10)+字母(26)+字符(2)= 38。最后使用Libtorch推理,效果可以。
2024-10-31 10:58:27
541
原创 使用paddleOCR训练自己的数据集到ONNX推理
1、安装paddlepaddle;这里安装2.6.1的话使用onnx会出现swish算子报错的问题验证是否成功安装2、安装paddleOCR直接按照,失败,失败安装的包就手动安装或者3、安装onnx安装完成4、验证是否安装正常。
2024-07-08 23:18:55
1073
原创 OpenCV以指定点为起点指定角度,垂直向上为零度,顺时针增加,画一条覆盖图像的线
OpenCV以指定点为起点指定角度,垂直向上为零度,顺时针增加,画一条覆盖图像的线。
2024-01-23 11:48:14
449
原创 vs2019下使用C++调用anaconda的python环境时遇到的问题
三、经过测试如果待被调用py文件与python环境不在同一个盘符,会找不到文件,即PyImport_ImportModule返回NULL;如:vs工程与py文件在D盘,anaconda环境在c盘,可执行以下指令将配置好的anaconda环境克隆一份到d盘。需要在C:\Users\xxx.condarc添加环境目录,不然conda env list会找不到环境名称。二、搭建anaconda环境后,确保使用python可以实现训练,过程省略。用Qt做界面,C++调用python实现训练接口;
2023-12-27 15:53:03
629
原创 VisionMaster控件二次开发注意事项
参考示例C:\Program Files\VisionMaster4.3.0\Development\V4.x\Samples\QT\PlatformSDKSampleQT\ProcessControl。Qt下使用,通过QAxWidget加载流程控件;2、输入输出设置绑定。需先在模块配置中设置。如何设置输入参数、获取输出结果?1、转为指定算子模块。
2023-05-15 15:34:35
1038
原创 为什么用c++开发dll接口要用char*而不能string
1、string是stl的内容,不能确定调用者的stl版本和你的相同,甚至你可能用的Visual C++编译,你同事用的G++,会存在二进制兼容性问题,无法正常调用dll接口;2、当然如果应用程序和DLL接口都是你一个人写,编译环境一样,想用什么都可以;3、开发对外的dll接口时,对于其他数据类型不要用stl的东西,如vector,map等,使用底层的数据类型,数组,struct,union等...
2022-04-23 17:44:32
1927
原创 C++构造函数中冒号作用及explicit关键字
构造函数中冒号作用,类给成员变量赋值,更适用于成员变量的常量const型。class myClass{/*构造函数中冒号作用,类给成员变量赋值,更适用于成员变量的常量const型。*/public : myClass();// 构造函数,无返回类型,可以有参数列表,这里省去 ~myClass();// 析构函数 int a; const int b;}myClass::myClass():a(1),b(1)// 初始化列表{}myClass::myClas
2022-04-18 17:53:24
558
原创 关于C++的线程thread,lambda,for循环动态生成线程
1、通过共享指针获取线程返回值int main(){ vector<thread> vThread; vector<int*> nRst(5); for (size_t i = 0; i < 5; i++) { nRst[i] = new int(0); } for (int i = 0; i < 5; i++) { int a = 1; int b = 2;
2022-04-18 15:09:38
1871
原创 一种应用程序服务通过负载均衡实现异步响应的方法
用C++搭建的web服务不支持多线程异步,可以通过打开多个不同端口的应用程序,然后配置nginx实现。1、实现通过命令参数运行应用程序;这里以mfc应用程序为例,可通过属性设置调试;2、批处理打开多个不同端口的应用程序;echo offtaskkill /f /im XRayDetector.exestart XRayDetector.exe 9697start XRayDetector.exe 9698start XRayDetector.exe 9699start XRayDetect
2022-02-17 12:01:12
1405
原创 PyCharm调试debug时在console中查看PyTorch的tensor图像
停在断点处时,在控制台输入相关指令;# debug时在console中查看tensor图像image_tensor = target.cpu()image_array = image_tensor.numpy()from PIL import Imageimage_PIL = Image.fromarray(image_array.astype('uint8'))image_PIL.save("/home/wang/home/wang/aa.jpg")...
2022-01-17 11:27:13
1978
原创 向量积在图像中的常用场景
叉积(向量积)定义:1、a×b或a∧b,结果为标量;2、向量积|c|=|a×b|=|a||b|sin<a,b>,即c的长度在数值上等于以a,b,夹角为θ组成的平行四边形的面积;3、a=(x1,y1),b=(x2,y2),则a×b=x1y2-y1x2;4、a×b小于0,向量a小于180°逆时针旋转到向量b;a×b大于0,向量a小于180°顺时针旋转到向量b;a×b等于0,向量a平行与向量b;引用场景1:OpenCV中contourArea轮廓面积算法时,假设轮廓点(A、B、C)按顺时针
2022-01-12 11:48:50
2671
1
原创 使用OpenCV的DNN读取onnx作为预测端实现分类
注意点:1、size跟训练时一致;2、训练时用到Normalize的话,因为blobFromImage不支持方差,需要重写blobFromImage;3、预测结果的格式,确保读取对应指标正确;class ModelFlipClass{private: Net net;public: bool Read(string pathNet); int Detect(string strImgPath);};bool ModelFlipClass::Read(string pathNet)
2021-12-30 20:09:27
3385
原创 使用Docker部署模型的一般方案
仅供参考!!!1、使用flask在你的本地搭建好web服务,其中包含你的模型文件,预测代码及其他配置参数,如主函数为code里面的main.py,运行确保可以在本地部署成功,可使用postman测试;2、注册好阿里云容器,自行了解。比如使用阿里云的原因方便https://cr.console.aliyun.com/cn-shanghai/instances3、新建批处理文件,为部署入口,参数一般包含镜像名称, 模型名称, 服务端口号,第几块显卡,如命名为deploy.sh。deploy.sh r
2021-11-19 18:00:54
1594
原创 c++下通过onnx部署yolov5-6.0到OpenCV
这里对比时使用的是自己整理的数据集,对瓶子进行目标检测,训练样本100张左右,测试样本20张左右,最终结果仅供参考。一、OpenCV实现过程参考链接:https://blog.youkuaiyun.com/qq_34124780/article/details/121079317注意事项:1、在6.0下可以不需要改动模型代码,包括大家提到的切片问题,只需要修改ONNX的参数opset默认13改为12,不然读取模型时会报错,应该是OpenCV还没有支持ONNX13;2、使用作者的代码跑自己的数据集时需要修改y
2021-11-18 23:07:21
5117
原创 图像算法:带源码OpenCV实现Halcon中的权重迭代直线拟合,减少异常点干扰
场景:找到下图中手机的边缘直线。思路:通过从左到右的边缘找点的方法找到边缘点集,再将这些点集拟合成一条直线。分析:边缘点集容易确定,但是蓝色箭头的异常点会包含在点集中,这时用OpenCV中的fitLine拟合直线会拟合成类似红色那条,可是我们想要的实际直线的绿色那条。方案:离群(异常)点一般会离拟合后的直线比较远,可以很自然地想到让这些离群点的权重减少后重新拟合一遍;具体原理可参考《机器视觉算法与应用》,对应Halcon中函数fit_line_contour_xld的tukey方法;效果:下图为迭
2021-11-15 23:07:46
5132
4
原创 使用C++下载URL图片
使用curl有些URL会下载失败,即下载下来的图片是空的。该方法亲测有效。另外string转LPCWSTR时也可以参考。bool DownloadUrlmon(string strURL, string strPath){ size_t len0 = strURL.length(); int nmlen0 = MultiByteToWideChar(CP_ACP, 0, strURL.c_str(), len0 + 1, NULL, 0); wchar_t* bufferURL = new w
2021-11-11 15:02:06
2662
原创 一个使用detectron2的简单实例分割项目实战
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-08-10 17:10:04
2605
1
原创 C#调用C++编译的dll,函数参数带字符串的情况
(2条消息) C++和C#混合编程,C#调用C++生成的dll以及字符串传递_Ripo_za的博客-优快云博客
2021-05-27 18:50:44
312
原创 win10安装detectron2,亲测有效
时间:2021.5.7,环境:win10、detectron2(0.4)、python3.6.13、pytorch1.7.1、torchvision0.8.2、cuda10.1、cudnn7.6、vs20191、安装cuda及cudnn;结果以nvcc -V结果为准,与nvidia-smi的区别;2、安装vs2019;3、安装Anaconda,打开Anaconda Promptconda create -n detectron2 python==3.6.13conda activ
2021-05-07 15:10:09
2565
2
原创 C++ 进制转换
16进制、2进制与10进制的互相转换string htoi(string hStr){ return std::to_string(std::stoi(hStr, nullptr, 16));}string itoh(string iStr){ std::stringstream ss; long long temp = std::atoll(iStr.c_str()); ss.setf(std::ios_base::hex, std::ios_base::basefield);.
2021-04-13 23:16:35
258
原创 关于链表
相对于数组,插入删除数据时不需要移动其他元素。#define LEN sizeof(struct node)struct node{ int data; struct node *next;};int main(){ struct node* p, * pl, * head; head = p = (struct node*)malloc(LEN); scanf("%d", &p->data);/*头结点的数据成员*/ while (p->data != 0
2021-04-13 11:22:05
146
原创 学习Python:小技巧
1、for in单行循环生成dictflower_class = ['a', 'b', 'c', 'd']class_indices = dict((k, v) for v, k in enumerate(flower_class))
2021-03-29 19:40:18
263
原创 学习OpenCV:使用reduce
求行或列的平均值、和、最大值、最小值。第三个参数为维度数,二维图像中等于0为列,等于1为行。 Mat srcMat = (cv::Mat_<uchar >(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); vector<int> vecOutput; reduce(srcMat, vecOutput, 0, REDUCE_SUM); Mat matOutput; reduce(srcMat, matOutput, 0.
2021-03-17 15:37:01
586
原创 软件图标网站
1. iconfont:http://www.iconfont.cn/2. easyicon:http://www.easyicon.net3. iconmonstr:https://iconmonstr.com/4. iconfinder:https://www.iconfinder.com/5. Swifticons:https://www.swifticons.com/6. Icons8:https://icons8.com7. iconstore:https://iconstore.co
2021-01-28 13:59:10
580
原创 学习Python:__init__和__call__
__init__的作用是初始化某个类的一个实例。__call__的作用是使实例能够像函数一样被调用。类文件MyClass.pyclass ClassA: def __init__(self, a): self.a = a print('__call__ with ({})'.format(self.a)) def __call__(self, b): return ClassB(b)class ClassB: d.
2021-01-19 15:39:42
269
原创 学习OpenCV:一些小技巧
1、imreadmulti可以直接获取文件夹中的多张图;2、imshow后选中窗口,Ctrl+C复制,Ctrl+S可保存,避免用imwrite.
2021-01-07 23:13:02
278
1
原创 学习OpenCV:rotatedRectangleIntersection计算两个旋转矩形的交集面积
如图所示,计算两个旋转矩形相交重合区域的顶点,最多返回8个顶点。通过contourArea可返回该顶点集合的面积。void DrawRotatedRect(Mat& imgInoutput, RotatedRect rectInput, Scalar color, int thickness, int lineType){ Point2f* vertices = new cv::Point2f[4]; rectInput.points(vertices); for (int j .
2020-12-16 17:25:30
5726
原创 学习Qt:构建套件Kits出现黄色叹号的处理办法
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/
2020-11-18 18:22:09
9013
原创 学习OpenCV:使用buildPyramid金字塔时的亚像素问题
在实现灰度匹配的过程中,从同一张目标图下截取部分作为模板,无法得到一个得分率约等于1的得分。这里采用了buildPyramid分别得到模板图与目标图的金字塔图,如下图所示,同一位置像素值相差较大。 ...
2020-11-17 16:41:05
557
原创 学习Python:装饰器
应用场景:已经有一些现存稳定运行的函数,现在你需要加调试信息、运行时间或其他调试参数,这时不能去动已经稳定的函数,可以将函数名作为参数传到一个装饰器中,在该运行函数前后添加所需的代码。import timedef timer(func): def wrapper(*args, **kw): start = time.time() func() end = time.time() used = end - start .
2020-11-06 16:50:32
211
1
原创 学习Qt:VS中提升控件
提升即继承某个控件新建一个新的控件,用于扩展控件功能。这里通过提升QListWidget,实现一个在list项中鼠标右键弹出上下文弹框的功能。1、添加一个QtClass,选择你要继承的控件,这里继承QListWidget,命名为SListWidget ;2、在SListWidget中添加扩展功能;#pragma once#include <qlistwidget.h>#include <QMenu>#include <QAction>#inc
2020-10-26 22:52:09
1131
机器视觉算法演示软件,用于常见的算法验证
2025-03-12
GetXGorgon0404.zip
2021-04-27
源码-Halcon+MFC实现相机畸变校正与手眼(九点)标定
2021-02-03
pcl_link.txt
2020-02-09
用OpenCV实现证件照的背景替换
2019-05-08
inno setup打包工具(破解版)
2017-07-17
matlab车牌识别
2017-05-08
热水器自动控制
2017-03-07
Qt-VS2015下载安装配置使用教程
2017-02-21
OpenCV如何打开多个不同接口的摄像头
2018-03-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人