自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Stone_石头

静以修身

  • 博客(154)
  • 资源 (18)
  • 问答 (1)
  • 收藏
  • 关注

原创 OpenCV以指定点为起点指定角度,垂直向上为零度,顺时针增加,画一条覆盖图像的线

OpenCV以指定点为起点指定角度,垂直向上为零度,顺时针增加,画一条覆盖图像的线。

2024-01-23 11:48:14 336

原创 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 440

原创 Qt常用的小技巧

【代码】Qt常用的小技巧。

2023-06-07 14:24:20 136

原创 VisionMaster控件二次开发注意事项

参考示例C:\Program Files\VisionMaster4.3.0\Development\V4.x\Samples\QT\PlatformSDKSampleQT\ProcessControl。Qt下使用,通过QAxWidget加载流程控件;2、输入输出设置绑定。需先在模块配置中设置。如何设置输入参数、获取输出结果?1、转为指定算子模块。

2023-05-15 15:34:35 603 1

原创 C++坐标转换

使用场景:机器视觉中的位置修正工具。

2023-05-12 09:25:29 755

原创 C++下通过变参(参数个数不确定)封装opencv的图像滤波

C++下通过变参(参数个数不确定)封装opencv的个图像滤波

2023-02-14 11:53:02 123

原创 Qt常用语句备忘

qt常用

2022-06-10 10:12:58 315

原创 为什么用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 1739

原创 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 484

原创 关于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 1703

原创 一种应用程序服务通过负载均衡实现异步响应的方法

用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 1327

原创 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 1751

原创 向量积在图像中的常用场景

叉积(向量积)定义: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 2476 2

原创 使用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 3229

原创 使用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 1382

原创 c++下通过onnx部署yolov5-6.0到OpenCV

这里对比时使用的是自己整理的数据集,对瓶子进行目标检测,训练样本100张左右,测试样本20张左右,最终结果仅供参考。一、OpenCV实现过程参考链接:https://blog.csdn.net/qq_34124780/article/details/121079317注意事项:1、在6.0下可以不需要改动模型代码,包括大家提到的切片问题,只需要修改ONNX的参数opset默认13改为12,不然读取模型时会报错,应该是OpenCV还没有支持ONNX13;2、使用作者的代码跑自己的数据集时需要修改y

2021-11-18 23:07:21 4916

原创 图像算法:带源码OpenCV实现Halcon中的权重迭代直线拟合,减少异常点干扰

场景:找到下图中手机的边缘直线。思路:通过从左到右的边缘找点的方法找到边缘点集,再将这些点集拟合成一条直线。分析:边缘点集容易确定,但是蓝色箭头的异常点会包含在点集中,这时用OpenCV中的fitLine拟合直线会拟合成类似红色那条,可是我们想要的实际直线的绿色那条。方案:离群(异常)点一般会离拟合后的直线比较远,可以很自然地想到让这些离群点的权重减少后重新拟合一遍;具体原理可参考《机器视觉算法与应用》,对应Halcon中函数fit_line_contour_xld的tukey方法;效果:下图为迭

2021-11-15 23:07:46 4773 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 2246

原创 pascal_voc数据集下载

Pascal VOC Dataset Mirror

2021-08-10 18:15:05 819

原创 一个使用detectron2的简单实例分割项目实战

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-10 17:10:04 2055 1

原创 win10中的ssh

1、安装ssh客户端win10怎么查看用户名和密码

2021-06-07 16:46:09 2752

原创 C#调用C++编译的dll,函数参数带字符串的情况

(2条消息) C++和C#混合编程,C#调用C++生成的dll以及字符串传递_Ripo_za的博客-CSDN博客

2021-05-27 18:50:44 230

原创 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 2262 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 172

原创 关于链表

相对于数组,插入删除数据时不需要移动其他元素。#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 100

原创 学习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 184

原创 学习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 484

原创 软件图标网站

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 512

原创 PyCharm使用小技巧

忽略大小写进行匹配提升。

2021-01-19 16:02:00 125

原创 学习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 174

原创 学习OpenCV:一些小技巧

1、imreadmulti可以直接获取文件夹中的多张图;2、imshow后选中窗口,Ctrl+C复制,Ctrl+S可保存,避免用imwrite.

2021-01-07 23:13:02 221 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 4948

原创 学习Qt:构建套件Kits出现黄色叹号的处理办法

https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/

2020-11-18 18:22:09 8136

原创 学习OpenCV:使用buildPyramid金字塔时的亚像素问题

在实现灰度匹配的过程中,从同一张目标图下截取部分作为模板,无法得到一个得分率约等于1的得分。这里采用了buildPyramid分别得到模板图与目标图的金字塔图,如下图所示,同一位置像素值相差较大。 ...

2020-11-17 16:41:05 482

原创 学习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 167 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 936

原创 小波变换知识点记录

https://zhuanlan.zhihu.com/p/22450818

2020-10-20 17:08:47 201

原创 学习OpenCV:频域及傅里叶变换

关键公式,《数字图像处理》第三版,P147:1、频谱图具有周期性,归一化为图像大小;2、频谱图具有对称性,以复数形式表示图像二维,幅值为实部与虚部平方和;https://www.zhihu.com/question/67234546/answer/403292397示例一:参考HDevelop中的remove_texture_fft.hdev,采用OpenCV实现去除图像中固定纹理;这里只是演示,只去除了部分纹理频率,没有完全去除干净,效果肯定没有HDevelop中的好:Mat C

2020-10-19 17:31:13 778

原创 学习OpenCV:hu矩

hu矩为描述整体图像特征的一种方法,零阶矩表示它的总质量;一阶矩表示它的质心;二阶矩又叫惯性矩,表示图像的大小和方向。通过计算普通矩可以知道图像的重心坐标、形状方向等; Mat imgSrc = imread("lena.jpg", IMREAD_GRAYSCALE); threshold(imgSrc, imgSrc, 50, 255, THRESH_BINARY); Moments mom = moments(imgSrc, false);// Calculate Moments dou

2020-09-27 23:52:45 1065

原创 关于KNN的一些思考

可以使用KNN分类的场景,每个类别由相同的若干的元素构成,如:求手机颜色分类。手机颜色中的黑、白、金等,分别由RGB三个元素值组成。1、整理出所有现有手机的颜色及其对应的三个元素值,即测试集;2、求三个目标元素值与上述所有元素值(测试集)的距离(L1或者L2);3、结果个数为测试集个数,每个距离值对应分类结果,格式类似,黑:22,黑:20,黑:18,白:55,白:58,金:108(测试集个数一般远远大于此);4、对上述距离值继续从小到大的排序;5、取前K个距离值,原则上测试集越多

2020-09-27 21:12:05 161

VM FAQ手册(V1.8)

VisionMaster二次开发的问题解决

2023-05-15

Qt自定义插件的构建和使用

完整工程。实现了加法插件和减法插件,主程序加载不同的插件实现不同的操作

2022-11-08

TransformTool.zip

数据集转换脚本。 1、mask标记的文件转为labelme格式; 2、labelme格式转为coco格式数据集

2021-08-10

GetXGorgon0404.zip

window运行,先安装运行环境VC_redist.x64.exe,再打开GetXGorgon0404.exe,输入数据需要是base64编码的。

2021-04-27

源码-Halcon+MFC实现相机畸变校正与手眼(九点)标定

畸变校正说明:https://blog.csdn.net/Stone_Wang_MZ/article/details/89184313 手眼标定说明:https://blog.csdn.net/Stone_Wang_MZ/article/details/89183692

2021-02-03

pcl_link.txt

包含PCL-1.10.0及pcl-1.9.0。 1、PCL-1.10.0-AllInOne-msvc2019-win64; 2、pcl-1.10.0-pdb-msvc2019-win64; 3、pcl-pcl-1.10.0.tar.gz;等

2020-02-09

C#调用VisionPro源码示例

C#中调用VisionPro工具,显示图片,以CogFindCircleTool为例,找出圆心,bin中包含运行图片。

2019-12-10

基恩士SR2000扫码枪资料及通讯方法.rar

包括基恩士扫码枪的使用手册、附C++代码实现网络通讯,通过网口与扫码枪通讯获取字符串。

2019-12-04

ReplaceBackground.rar

通过OpenCV中K-Means方法证件照的背景替换。用MFC做的界面,包含实现源码,需要自己根据实际情况配置OpenCV环境。

2019-11-22

用OpenCV实现证件照的背景替换

通过OpenCV中K-Means方法证件照的背景替换。注意:不能直接运行应用程序的需要在系统中安装.Net环境或者Visual C++2005 RUNTIME LIBRARIES以上版本。

2019-05-08

Halcon+MFC实现相机畸变校正与手眼(九点)标定

删除

2019-04-10

OpenCV找出图像中隐藏关键字

http://blog.csdn.net/stone_wang_mz/article/details/79587304

2018-03-18

通过MFC对SQLite进行操作

VS2017下可直接运行,根据物料的长宽计算出面积,然后通过SQLite对数据进行增删改查。

2017-07-24

inno setup打包工具(破解版)

里面包含两个文件夹,安装“isetup-5.4.2-unicode”里面的应用程序,成功安装后找到安装路径,将“INNO SETUP覆盖”中的文件覆盖到安装路径。

2017-07-17

MFC中软件开启等待界面的实现方法

MFC中软件开启等待界面的实现方法

2017-07-14

通过MFC实现数码管显示数字

通过MFC实现数码管显示数字

2017-07-12

matlab车牌识别

(可以直接运行)调取图片、灰度处理图片,减少计算量、用robrets算子进行边缘检测、图像腐蚀、平滑图像、删除二值图像的小对象、车牌定位、方向车牌区域确定。。。

2017-05-08

BGR图像对称映射显示

用opencv将图像对称显示,例如将b变成d

2017-03-16

热水器自动控制

本设计采用STC89C51作为控制核心,采用DS18B20实时采集水温,通过LCD1602进行实时显示信息,能够通过按键或红外遥控进行设置温度的范围,当实测温度低于下限时候控制继电器吸合进行似的加热器工作给水进行加热,当高于上限的时候继电器断开加热器停止工作,并且蜂鸣器鸣叫提示,设置的限值会自动存储于单片机EEPROM中具体掉电存储的能力,系统还可以定时,在定时期间系统关闭加热,并且温度低于下限也不会进行控制。

2017-03-07

Qt-VS2015下载安装配置使用教程

因为Visual Studio 在中国区太盛行了,正好Qt 5.6.0 版本刚发布,写一篇关于Qt VS2015 版本的安装配置说明。这里首先介绍一下集成开发环境( Integrated Development Environment,IDE)的概念,一般IDE 除了直接的代码编辑和项目管理功能,还有非常重要 的功能就是编译链接生成目标程序,以及调试目标程序可能的错误。

2017-02-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除