- 博客(92)
- 资源 (3)
- 收藏
- 关注
原创 halcon学习记录之亚像素轮廓
在图像处理中,二次或多次插值算法可以在相邻像素的位置之间插入虚拟像素,从而得到更丰富和细致的图像信息。这些虚拟像素的值是通过对相邻实际像素值的计算获得的。这些算法通过考虑相邻像素之间的灰度或颜色变化,以及它们的空间关系,生成更精确的图像表示。通过引入亚像素,可以在图像中捕捉到更多的细节,提高测量的精度。亚像素是在数字成像领域,由于物理上已经无法在相邻像素之间增加更多实际的感光单元,通过插值算法引入虚拟像素以在图像中提高测量的精度。轮廓的多边形逼近指的是:使用多边形来近似表示一个轮廓。
2024-04-10 09:56:04 187
原创 const与&修饰函数形参
C++中,const与&修饰函数形参的可能情况有四种;C语言中,情况只有1)和3)两种。string str这是最普通的传值调用,首先对原str进行一次拷贝,会调用拷贝构造函数。str可以被修改,但修改的只是复制的值,而不会影响到本身的str。string &str这是引用,传递过来的就是str本身,在函数里修改str的话都会修改str本身,但不会调用拷贝构造函数。const string str传值调用,str是复制的值且不能被修改,但会调用拷贝构造函数。co
2021-07-29 13:42:15 1332 1
原创 BASLER Pylon 抓取策略
One by One Grab Strategy 逐个抓取策略当使用 one by one 抓取模式时,图像按其获取顺序处理。相机抓取引擎实例将空缓存队列中的缓存取消,并将空缓存排入低级别API流抓取器(1)。相机设备被触发(2)。相机设备获取图像,图像被传输到计算机,然后抓取到一个空的缓存中。相机抓取引擎实例线程被通知一个被填充缓存可用。此填充缓存被抓取引擎线程(3)接收,并将其放入到输出队列。在RetrieveResult () 方法中等待的应用程序线程被通知到,它停止等待抓取结果并接收填充
2021-05-13 09:55:09 733
转载 如何用sql语句复制一张表
如何用sql语句复制一张表1、复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。2、只复制表结构到新表CREATE TABLE 新表 SELECT * FROM 旧表 WHERE
2021-04-06 17:34:38 18605
原创 mfc中CreateThread(),
创建线程CreateThread线程创建函数CreateThread修改说明:CreateThread()l来创建线程其实是一种不太好的方法,在实际使用中尽量使用_beginthreade()来创建线程,因为更加的安全函数的原型:HANDLE WINAPI CreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _
2021-02-26 08:34:16 2210
原创 c++命名规则
变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。第一个字母必须是字母或者下划线开头。不能使用C++关键字来命名变量,以免冲突。变量名区分大小写。变量命名规则:一.用最短字符表示最准确的意义。二.使用变量前缀。1.整型前缀 int nId; //int前缀:n short sId; //short前缀:s unsigned int
2021-01-26 15:16:33 2025
原创 qt使用ODBC连接mysql
1.实例代码int main(int argc, char *argv[]){ QApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("127.0.0.1"); db.setPort(3306); db.setDatabaseName("mytest"); db.setUserName("root"); db.
2021-01-23 11:07:34 1001
转载 手眼标定_全面细致的推导过程
相机的装载位置不在手上(eye-to-hand)相机固定在一个地方,机械手的运动不会带着相机一起移动。在手上(eye-in-hand)相机安装在机械手上,随着机械手一起移动。较为常用。这个实际上和eye-to-hand类似。可以快速有效地标定被测物体的坐标。这种情况的标定过程实际上和相机和机械手分离的标定方法是一样的,因为相机拍照时,机械手会运动到相机标定的时候的位置,然后相机拍照,得到目标的坐标,再控制机械手,所以简单的相机固定在末端的手眼系统很多都是采用这种方法,标定的过程和手眼分离系统的标
2021-01-20 09:47:49 1810
原创 膨胀与腐蚀的原理
**腐蚀的原理:**二值图像前景物体为1,背景为0.假设原图像中有一个前景物体,那么我们用一个结构元素去腐蚀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值。由于二值图像最小值就是0,所以就是用0替换,即变成了黑色背景。从而也可以看出,如果当前结构元素覆盖下,全部都是背景,那么就不会对原图做出改动,因为都是0.如果全部都是前景像素,也不会对原图做出改动,因为都是1.只有
2020-12-16 09:54:21 3493 1
转载 C++公有继承,保护继承,私有继承的区别
**1.公有继承–public**公有继承时,对基类的公有成员和保护成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和保护成员,但是访问不了基类的私有成员。派生类的对象只能访问派生类的公有成员(包括继承的公有成员),访问不了保护成员和私有成员。#include <iostream>using namespace std;class Base {public: Base(int nId) {mId = nId;} int GetId()
2020-12-01 12:34:00 349
原创 c++中的转换函数
在C++中 当类的构造函数参数只有一个内置类型的形参或除了第一个形参外其他的参数都有默认值时,允许把这种内置类型赋值给类对象,这是一种隐试类型转换。那么既然存在由内置类型到类对象的类型转换,C++同样也提供由类对象到内置类型转换的方法------转换函数转换函数是用户自定义的强制类型转换,可以像使用强制类型转换一样的使用它们。它的形式如下: operator typename();需注意以下几点:1 转换函数必须是类方法2 没有返回值3 没有参数原因在于它是一种强制类型转换,所以不需要返回
2020-11-30 13:18:42 234
原创 c++中深拷贝与浅拷贝的区别
浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。...
2020-11-30 12:59:53 1301
转载 C++ 构造函数、析构函数、拷贝构造、赋值运算符
先建立一个测试类(包含.h和.cpp)//~ Person.h#ifndef PERSON_H_#define PERSON_H_#include <iostream>class Person {private: static int counter;public: Person() { counter++; std::cout << "构造函数" << std::endl; st
2020-11-30 11:08:08 132
转载 在C++中使用CognexVisionpro (修订2.0)
由于visionpro在7.2以及后续的版本中全面支持.net架构,不在发布COM组件。所以不能在VC++中直接使用visionpro. 但是可以利用interop 将.net 的程序封装为要吧在VC++中调用的COM组件。使用方法如下: VB.net中建一个工程InteropUserControl添加reference代码中加入 improts …加入函数 例如 public OpenImage()界面中加入显示内容。以上内容与VB.net编程一致。在此不再详述。 编译
2020-11-27 08:18:56 1673
原创 c++的运算符重载
C++ 中的运算符重载您可以重定义或重载大部分 C++ 内置的运算符。这样,您就能使用自定义类型的运算符。重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。Box operator+(const Box&);声明加法运算符用于把两个 Box 对象相加,返回最终的 Box 对象。大多数的重载运算符可被定义为普通的非成员函数或者被定义为类成员函数。如果我们定义上面的函数为类的非成员函数,
2020-11-26 09:55:57 176
原创 c++ stl栈stack的成员函数介绍(empty pop push size top 函数含义)
操作 比较和分配堆栈empty() 堆栈为空则返回真pop() 移除栈顶元素push() 在栈顶增加元素size() 返回栈中元素数目top() 返回栈顶元素
2020-11-25 16:37:44 1320
转载 函数后面加一个const关键字的作用
非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);唯一的例外是对于mutable修饰的成员。加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调用。class A { private: int m_a; public: A
2020-11-25 14:40:44 5514
原创 常见的数据类型所占的存储空间大小
首先,计算机单位是比特Bit(b),字节Byte(B),千字节Kilobytes(KB),兆字节Megabytes(MB),吉字节Gigabyte(GB)太字节terabyte(TB)1 bit = 1个2进制数;(比特)1byte = 8个2进制数;(字节)**16位编译器**char :1个字节char*(即指针变量): 2个字节short int : 2个字节int: 2个字节unsigned int : 2个字节float: 4个字节double: 8个字
2020-11-20 16:23:11 5447
原创 public protected private
public修饰的变量和函数可以在类的内部和外部都可以访问protected修饰的变量和函数只可以在类的内部访问,如果该类派生出子类,那么在子类中该变量和函数也可以使用private修饰的变量和函数只可以在类的内部访问,在其派生的子类中不能访问。...
2020-10-20 15:01:58 315
原创 在c++中的头文件定义的不同的变量类型的作用域
根据头文件中变量的定义形式,作用范围有所不同,有如下几种情况:1在头文件中定义静态变量,如static TYPE var = init_value;其中dao= init_value部分可以省略。等效于在每个引用该头文件的源文件中,定义一个变量名为var, 类型为TYPE的静态全局变量。每个文件中的var变量均归属于本源文件,各文件中的互不相同。作用域为引用头文件的源文件范围内。2在头文件中定义变量,但是不带初始化值。TYPE var;这种情况下,相当于定义了一个全局变量var, 同时在
2020-10-20 14:49:15 876
原创 与表格关联的模型QSqlTableModel
4.2 与表格关联的模型如果要编辑数据库中的数据,城使用QSqlTableModel类。 QSqlTableModel类的继承层次如下:QObject - QAbstractltemModel - QAbstractTableModel - QSqlQueryModel - QSqlTableModelQSqlTableModel类的构造函数为:QSqlTableModel([QObject parent = Q_NULLPTR][, QSqlDatabase db = QSqlDatabase()
2020-10-14 16:03:27 663
原创 工业相机软件参数介绍
1. Analog Controls功能介绍 (模拟量)Gain Auto 自动增益功能,包含三个选项:Off,Once和Continuous,分别是关闭自动增益,做一次自动增益和连续做自动增益。自动增益的功能必须与采集配合,也就是说只有在采集状态下才能做自动增益,如果相机没有执行采集指令,那么自动增益是不能实现的。Gain Selector 有些多tap输出的相机可以选择tap调节增益,您使用的相机是单tap输出的,所以这个选项基本没有用处。 Gain Raw 调节增益的具体数值。
2020-10-12 09:48:15 3785 1
原创 相机与镜头选型
像元分辨率与镜头分辨率的关系例如一个CCD的像元尺寸大小为5×5微米,则像元分辨率则为:=1/(2*0.005)=100(lp/mm)。传感器的像元分辨率限制了系统的最高分辨率,即使镜头的分辨率再高,系统也不可能分辨高于像元分辨率的细节。工业相机的靶面尺寸1英寸——靶面尺寸为宽12.7mm高9.6mm,对角线16mm。2/3英寸——靶面尺寸为宽8.8mm高6.6mm,对角线11mm。1/2英寸——靶面尺寸为宽6.4mm高4.8mm,对角线8mm。1/3英寸——靶面尺寸为宽4.8mm高3.6mm,
2020-09-30 11:16:34 2147
原创 qt里面kits套件选择
QT编译器的选择QtCreator-----Kits选项选择_第6张图片对程序进行编译之前需要设置编译器。如图可见各种编译器后有括号予以标示,括号里的内容分别有x86、amd64_x86、amd64、x86_amd64、x86_arm、amd64_arm等。名称 含义x86 32/64位系统编译到32/64位系统运行amd64_x86 64位系统编译到32/64位系统运行amd64 64位系统编译到64位系统运行x86_amd64 32/64位系统编译到64位系统运行x86_arm 32
2020-09-25 09:40:49 2090
原创 QT5+MSVC2015+OPENCV4搭建
1.下载好对应的opencv与qt及MSVC编译器。2.新建对应的编译器的qt项目(比如添加的是x64/vc14对应的qt需要建msvc2015 64项目)3.包含路径自动生成的不对需要手动更改。5.加入以下代码就可以用了#include "mainwindow.h"#include <QApplication>#include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char
2020-09-23 14:43:59 444
转载 opencv与qt的环境搭建
本文是基于当前时间的最新发布的工具环境的搭建教程: OpenCV4.1.1 QT5.13 QtCreater4.9.1 MinGW730_64目录1,安装前准备2,安装QT3,安装Cmake4,(最关键的来了!)安装,编译Opencv4.1.15,编写QT测试程序,调用已经编译好的opencv库。1,安装前准备首先,你需要准备的安装文件有opencv,cmake,qt三个:(1)Opencv 4.1.1下载地址: https://opencv.org/releases/文件名:
2020-09-23 13:32:05 2148 8
转载 string与cstring区别
1.string与cstring有什么区别是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string的typedef),用于字符串操作。是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(NUL即’\0’结尾字符串)相关的一些类型和函数的声明,例如strcmp、strchr、strstr等。和<string.h>的最大区别在于,其中声明的名称都是位于std命名空间中的,而不是后
2020-09-23 10:11:45 9377
转载 Qt 之字体设置(QFont)详解
简述QFont字体设置无非就是设置下面一些参数:设置字体大小和像素大小的区别setPixelSize()函数使用像素作为单位来设置字体大小setPointSize()函数规定了实际中我们肉眼看到的字体的大小,与像素无关使用setPixelSize函数设置大小,在像素大小不同的设备上显示的大小也不同使用setPointSize函数设置大小,在不同设备上显示的大小是相同的QFont衍生QFont 为绘画文本提供制定的字体QFontComboBox 提供了选择字体族的下拉列表框QFontD
2020-09-23 08:54:18 4495
转载 C/C++中基本数据类型所占内存大小
C中不同数据类型所占的字节大小,在不同的操作系统和编译器下,是不同的,一般主要说gcc下,32位或64位系统的,红色部分是32和64位系统不同的,做了个表如下:
2020-09-19 10:07:08 191
转载 图文并茂raid技术详解(raid大全)
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。一、RAID 概述 1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAI
2020-09-17 13:28:22 2900
原创 QT程序去掉标题栏后我又哭了,因为它不能移动了
QT程序去掉标题栏后我又哭了,因为它不能移动了,这就有点操蛋了,于是我就百度了一下,参照了别人的做法,最后实现了无标题栏窗口的移动,顺便记录下来。具体方法如下:(1)在头文件中添加如下代码:#include <QMouseEvent>protected: void mousePressEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEve
2020-09-14 16:12:07 212
原创 qt中信号与槽多次调用的问题及信号与槽的连接方式问题
发送一次信号,调用多次槽函数问题在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver, SLOT(onSignalSender(QString, int))); 会导致发送一次信号signalSender(QString, int) 多次调用槽函数(onSignalSender(QString, int),如果链接了一次,那么,发送一次signalSender信号,就调用一次onSignalSe..
2020-09-14 11:06:22 1848
原创 QT中的LIBS用法
用法:LIBS += -Lzzz -lxxx -lyyyzzz:库路径xxx、yyy:库文件库路径可以有以下的形式:-L. 表示 .pro所在目录-L$$PRO_FILE_PWD/ 表示 .pro所在目录-L$$PWD/ 表示 .pro所在目录-LC:/abc/ 表示C:/abc/库文件可以有以下的形式:若.pro所在目录lib下有解码库需要被链接,msvc版本为“VideoDecoder.lib”,mingw版本为“libVideoDecoder.a
2020-09-14 10:25:21 10250 1
转载 Qt5.9中QObject::connect()函数用法(函数使用的前提条件和参数详解)
本文章主要总结Qt5.9中QObject::connect()函数的用法,全文分为两大部分,第一部分讲解connect函数使用的前提条件,第二部分讲解connect函数各个参数详解和具体的用法实例。一、首先需要注意的是,connect()函数有且只能在QObject类里面和QObject派生类里面使用,自己新建的类里面(基类不是QObject类和其QObject派生类)使用connect()函数是无效的,编译时一直报错。当然,我们新建工程比如widget,mainwindow,dialog都是QObjec
2020-09-14 09:19:08 957
转载 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)
一、Qt Creator环境设置1、cpp或h文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.我们使用的Windows系统本地字符集编码为GBK。2、Windows环境下,Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码->默认编码,常用的选项有以下几个:System(简体中文windows系统默认指的是GBK编码)GBK/windows-936-2000
2020-09-11 07:52:01 12598 2
转载 c++中的类指针
Student a; s.setName("A"); //Studeng *b = new Student();Student *b;b = new Student();b->setName("B");分析:定义类对象基本格式是:Student a;在定义之后就已经为a这个对象分配了内存,且为内存栈;定义类指针基本格式是:Student b = new Student();在定义b的时候并没有分配内存,只有执行new后才会分配内存,且为内存堆。问题:(1)类对象和类指针区别A
2020-09-10 17:21:55 14046 1
原创 visionpro
一 无分类1.1. CogAcqFifoTool功能:从相机获取图像1.2. CogBlobTool功能:斑点找寻工具1.3. CogCaliperTool功能:卡尺工具,用于找单边或边缘对1.4.CogCNLSearchTool功能:在图像中找寻像素值的训练模板1.5. CogDataAnalysisTool功能:数据分析工具1.6. CogImageFileTool功能:将获得的图像保存至文件或从文件中获取图像1.7. CogPatInspectTool功能:比较输入图像的特
2020-08-05 14:18:06 1460
PC_SDK帮助手册中文版.pdf
2020-05-05
Switch_type_program.zip
2020-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人