自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (8)
  • 收藏
  • 关注

原创 用Qt写的机器视觉绘图工具

Qt QGraphicsView QGraphicsScene

2023-09-05 23:51:26 323 1

原创 ODB++资料解析

实际上就是ODB+文件是一个JOB类,包含有step等等信息,一般整个板就是一个panel,panel是由set组合成的,set又是有一个pcs组合来的,pcs就是对应我们的PCB单板了。奥宝公司和康代公司的设备都是用的ODB++格式进行PCB的生产和检测。odbGeometry 存放ODB++的图元,主要用到的pad(焊盘)segment(线)surface (铜皮)arc(弧线)对ODB++文件进行解析把数据栅格化很重要,查了网上找不到一个成熟能用的ODB++文件解析代码。

2023-08-16 21:23:11 2482 6

原创 基于VTK开发的3D共聚焦显微测量框架

高度图、灰度图叠加显示。

2023-08-16 00:37:53 188

原创 基于Qt的金橙子打标卡二次开发

qt金橙子二次开发、激光加工、激光控制二次开发

2023-02-18 07:31:12 1475 1

原创 人理解循环,神理解递归---1

所有的递归都是穷举递归本身就是把所有符合题意的情况穷举出来,任何用递归实现的算法都可以用循环穷举出来。为什么?递归总要有一个结束的条件,而这个结束的条件一定在算法本身是被收敛回来的结束条件的函数值也必须是已知的用递归算组合问题从n个数里面选k个数,有多少种选法首先需要清楚,从n个数中选k个数等于从n-1个数中选k-1个数加上从n-1个数中选k个数比如从1,2,3,4,5中选3个数等于第一个选1与第一个不选1两种情况的总和而第一个选1之后剩下4个数再选两个第一个

2020-09-11 17:38:44 510

原创 (4)C# HashTable,Dictionary<T>

class Program { class student { public student(string _name, int _id) { name = _name; id = _id; } public string name; public int id; ...

2020-09-04 23:18:05 193 1

原创 (3)C# List<T>,LinkedList<T>

using System;using System.Collections.Generic; //List所在名称空间using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections; //ArrayList 所在名称空间namespace CSharpTest{ class Program { class student { .

2020-09-04 21:43:30 418

原创 (2)C# ArrayList,List<T>

using System;using System.Collections.Generic; //List所在名称空间using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections; //ArrayList 所在名称空间namespace CSharpTest{ class Program { class student { .

2020-09-03 23:09:48 156

原创 (1) C# 数组

class Program { class student { public student(string _name, int _id) { name = _name; id = _id; } public string name; public int id; ...

2020-09-03 22:19:11 134

原创 视觉运控平台软件框架(8)---运动控制窗体

有两个运动控制窗体,一个负责运动控制部分,一个负责Io控制,运动控制下面部分是预留用来做插补功能测试的。IO可以自由配置,外部怎么接线就怎么配置。配置完成后存成ini文件。...

2020-08-23 21:27:39 1834 5

原创 视觉运控平台软件框架(6)---脚本编辑器Qsci

qscintilla是Qt开源的文本编辑器,可用之来做一个代码编辑器,它支持包括C,C++,Python,Java等多种编程语言的语法,当然也是支持我们用到的lua的。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。网上说这个编辑器包括有错误提示功能,但我还未能找到相关实现方式。在这个界面编辑lua脚本,点击执行即可执行相应的脚本。

2020-08-22 22:38:01 995

原创 视觉运控平台软件框架(5)---脚本lua,luaWrapper

lua源码,源码的编译方式我之前的博客有,这里不提。luaWrapperModule:对自己写的类封装成lua供lua脚本调用。有两种封装方式,可以封装成静态函数或者封装成lua类,但是我自己测试了下,如果封装成lua类的话内存不能自动释放,运行一段时间后内存用完就崩溃了。封装成静态函数调用就不需要关心内存的问题,因为它没有创建新的对象。下面代码是对运动控制部分的封装,有封装成类的也有封装成静态函数的。封装静态函数封装成类供lua脚本调用后续添加图像算法的封装...

2020-08-22 21:47:39 1087

原创 视觉运控平台软件框架(3)---通信Communication,ComunicationDialog

目前集成了串口通信与网口通信两个通信方式,串口与网口都是基于qt写的,两种通信方式以动态库导出,用lua脚本封装成相应的serialport类和tcp类,都可以通过lua脚本调用。CommunicationDialog:通信窗体类,用于对通信模式的配置与测试界面有点难看,先将就着,可以用qss美化。...

2020-08-22 17:06:42 788 1

原创 视觉运控平台软件框架(1)---总览

近期有点空余时间,花点时间写了个视觉运控平台框架,该框架集成了运动与视觉部分。视觉和运控部分均可独立配置,并且运控部分的在配置完轴控和视觉部分的图像处理流程后,通过Lua脚本语言控制机器的整个动作流程。这跟目前市场上的大多数视觉软件相比也算是一点点小小的创新。并且考虑后续把所有图像算法都通过lua脚本导出,这样就跟Halcon软件一样的开发方式,还比它多了个运动控制的部分。这样做的好处就是图像处理和运动控制统一了,不需要像现在很多视觉软件的控制方式那样图像处理完后还要设置一个通信与外部负责运控控制的模快去通

2020-08-22 15:19:24 3741 12

原创 (15)C++---回调函数

1、什么情况下会用到回调函数?现在一般遇到的需要用到回调函数的都是涉及应用数据采集的某类设备,设备的SDK是用C语言写好封装好的。当设备采集完数据后需要通知读取数据的一方去对这些数据进行某种处理。比如相机图像的采集,激光雷达数据的采集。例如下面禾赛科技的激光雷达SDK中用回调函数对数据进行处理#include "hesaiLidarSDK.h"//SDK中的函数为:boost::function<void(boost::shared_ptr<cv::Mat> mat

2020-07-28 00:05:38 330

原创 (14)C++算法---自定义的线程池

需要并行处理多个细小的任务时,不需频繁创建销毁线程ThreadPool.h#pragma once#include <vector>#include <utility>#include <queue>#include <thread>#include <functional>#include <mutex>#include <condition_variable>class ThreadPool

2020-07-26 13:49:55 325

原创 (13)C++容器---优先队列priority_queue

#include <iostream>#include <thread>#include <algorithm>#include <functional>#include <numeric>#include <vector>#include <chrono>#include <thread>#include <queue>//#include "ThreadPool.h"usin.

2020-07-26 12:21:12 183

原创 VS2019远程调试

1、网线,连接调试电脑与待调试的工控机2、下载vs2019远程调试工具(https://visualstudio.microsoft.com/zh-hans/downloads/?rr=https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019),安装到工控机上。3、启动vs2019远程调试工具,安装完成后在工控机上开始->所有程序->Visual Studio 2019-&

2020-07-10 11:31:49 9002 1

原创 (12)C++算法---查找,排序,std::sort,std::find,std:search,std::binary_search

#include <iostream>#include <thread>#include <algorithm>#include <functional>#include <numeric>#include <vector>using namespace std;struct Point //对类也是一样的{ Point(int _x,int _y) { x = _x; y = _y; } int ..

2020-06-21 22:34:24 640

原创 (11)C++算法---transform,std::for_each

遍历容器执行某一算法的快捷用法#include <iostream>#include <thread>#include <algorithm>#include <functional>#include <numeric>#include <vector>using namespace std;int myPlus(int a,int b){ return a + b ;}void print(int a.

2020-06-21 15:33:03 272

原创 (10)C++智能指针---shared_ptr,dynamic_pointer_cast

#include <iostream>#include <thread>#include <memory> //智能指针所在头文件using namespace std;class BaseClass{public: BaseClass(){} ~BaseClass(){} virtual void print() { cout << "this is base class" << endl; }protected:.

2020-06-21 12:18:06 1989

原创 (1)Opencv Mat图像像素的访问与遍历

在开始之前先下载一个可以查看Mat图像数据的插件1、打开vs,找到菜单栏->工具->扩展与更新->联机->搜索Image2、下载完成之后关闭VS,提示安装信息后安装即可。3、打开ImageWatch。程序运行过程中可在调试模式下查看图像信息。#include <iostream>#include <thread>#include "Matx.h"#include <opencv2\core.hpp>#incl.

2020-06-13 11:47:12 360

原创 Halcon例程分析20:Halcon多线程处理图像

二维码* This is a simple example program that demonstrates the* Aoption to call several HLtoCON operars or procedures in parallel.* In general, owing to the overheadof thread creation,* not in all cases a speedup can be expected,* especially, if the u

2020-06-12 20:13:33 3356

原创 Halcon例程分析19:点胶质量-断胶、少胶、胶宽、胶路检测

打开halcon,按下ctrl+e打开halcon自带例程。应用范围->二维测量比较->apply_bead_inspection_model.hdev* This example shows how to use bead inspection to verify* adhesive beads. Bead inspection can be used to detect the* following errors:* - segments where adhesive is m

2020-06-11 22:54:40 9502 3

原创 (9)C++函数模板---template,typename

#include <iostream>#include <thread>#include "Matx.h"template <typename _Tp>void Swap(_Tp& a, _Tp& b){ _Tp tmp = a; a = b; b = tmp;}int main(){ int a = 5; int b = 4; std::cout << a << b << std.

2020-06-02 13:05:48 225

原创 (8)C++互斥量,条件变量---mutex,condition_variable

互斥量std::metux:锁定资源不被同时访问条件变量:(1)阻塞线程,等待某条件满足继续往下执行(2)通知其他线程继续执行,因为条件变量在阻塞过程中并不会轮询当前条件的值#include <iostream>#include <thread>#include <windows.h>#include <string>#include <mutex>#include <condition_variable>#inc

2020-05-30 21:42:10 267

原创 (7)C++函数绑定---function,bind

// CppTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <thread>#include <windows.h>#include <string>#include <mutex>#include <functional>#include <chrono>int number = 0;std::mutex.

2020-05-30 09:55:45 776

原创 (6)C++线程---thread

#include <iostream>#include <thread>#include <windows.h>#include <string>#include <mutex>int number = 0;std::mutex mtx;void fun1(){ for (int i = 0; i < 1000; i++) { std::unique_lock<std::mutex> lck(mtx.

2020-05-30 08:56:39 129

原创 (5)C++容器---map

map---一对一hash#include <iostream>#include <thread>#include <windows.h>#include <string>#include <map>void printMap(std::map<int,std::string> &m){ std::map<int,std::string>::iterator itor; if (m.begin

2020-05-24 22:01:08 111

原创 (4)C++容器---容器的几种遍历方式

#include <iostream>#include <thread>#include <windows.h>#include <queue>#include <string>#include <list>#include <vector>void printVector(std::vector<int> &vec){ std::vector<int>::iterator.

2020-05-23 10:55:49 292

原创 (3)C++容器---list

list---链表,不连续的内存存储数据,随即存取效率低,不支持[]直接访问操作#include <iostream>#include <thread>#include <windows.h>#include <queue>#include <string>#include <list>void printList(std::list<int> &list){ std::list<int

2020-05-23 00:32:46 125

原创 (2)C++容器---deque

deque---双端队列,可从两头对元素进行操作#include <iostream>#include <thread>#include <windows.h>#include <queue>#include <string>int main(){ std::deque<int> q = {1,2,3,4,5,6,7,8,9};//deque是可以直接赋值的 int data = 0; data = q.at(2

2020-05-21 21:56:04 244

原创 (1)C++容器---queue

queue---先进先出队列int main(){ std::queue<int> q;//区别于deque,deque是可以直接赋值的 q.push(1);// q.push(2); q.push(3); //遍历队列 while(!q.empty()) { std::cout << q.front() << std::endl; q.pop();//把队列头的元素剔除 } q.push(1);// q.push(2); q.

2020-05-21 20:46:16 139

原创 非标框架(11)-有限状态机4-进板状态

/// <summary> /// 进板中 /// </summary> public class PalletInState : StateBase { private static PalletInState instance = new PalletInState(); public static PalletInState Instance => instance; public o...

2020-05-10 01:43:19 251

原创 非标框架(10)-有限状态机3-空闲状态

using LaserWelder.Agency;using LaserWelder.Machine;namespace LaserWelder.StateMachine{ /// <summary> /// 空闲状态 /// </summary> public class IdleState : StateBase { private static IdleState instance = new IdleState.

2020-05-09 21:38:02 270

原创 非标框架(9)-有限状态机2-状态机主体类

using System;using LaserWelder.Machine;using LaserWelder.Util;namespace LaserWelder.StateMachine{ public class FSM : TaskLoop { private static FSM instance = new FSM(); public static FSM Instance => instance; /// &.

2020-05-09 21:09:17 214

原创 非标框架(8)-有限状态机1-状态机基类

using System;namespace LaserWelder.StateMachine{ public abstract class StateBase : ICanExcuteMsg,ICloneable { public abstract void Update(); public abstract StateType Type { get; } public abstract void Enter(StateType old...

2020-05-09 21:07:33 257

原创 非标框架(7)-机械手抽象类

/// <summary> /// 机械手抽象类 /// </summary> /// <typeparam name="TPrm">参数类型</typeparam> public abstract class RobotBase<TPrm> : ICanGetAxisArray, IMsgRobot...

2020-05-05 19:40:59 241

原创 非标框架(6)-轴类

using System;using System.Threading;using LaserWelder.Base;using LaserWelder.Util;namespace LaserWelder.Motion{ /// <summary> /// 轴 /// </summary> public partial clas...

2020-05-04 20:34:23 281

原创 非标框架(5)-轴参数类

/// <summary> /// 轴参数 /// </summary> public class AxisPrm : EntityBase<AxisKey>, ICloneable { public AxisPrm() : base() { } privat...

2020-05-04 20:07:01 331

ECam可执行程序,不包含源码

ECam可执行程序,不包含源码

2023-10-09

2020-01.zip

Halcon1月份liscense

2020-01-02

PluginTest.rar

基于qt的插件式开发框架,动态加载dll文件,精简主程序架构,其他需要添加的功能动态加载上去。不需要的功能也不需修改主程序代码,只需删除动态库文件即可。

2019-11-10

lua5.3.5.rar

编译lua源码程序的例子,不需要依赖其他的库,源码也已经包括在工程中,可直接下载下来编译

2019-08-18

CommunicationWidget.rar

用qt是实现的一个多窗口分类时的窗口,用到qt的代理机制

2019-08-16

ExportWidget.rar

应用Qt导出界面类供其他c++程序调用,在程序到达一定规模后这样做能减少编译时间。

2019-08-06

ZBar_test.rar

基于ZBar库的二维码和条形码识别。图像经过预处理,识别率99以上。需要配置opencv库。

2019-05-26

DXF_test.rar

基于dxflib的DXF文件读取与写入,完整工程项目。不需依赖任何其他库。

2019-05-26

早教编程软件

一款好玩的早教编程软件,能配合硬件使用。接口是通用的uart接口。

2018-05-26

空空如也

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

TA关注的人

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