C/C++
C and C++
tcy23456
这个作者很懒,什么都没留下…
展开
-
C++实现python中的列表list,dict (tcy)
说明: 主要采用C++ 中std::variant实现任意数据类型(基础)的list(对应std::vector) dict对应于std::map.主要函数包括create,append,del,find,at及print显示用途: 便捷包装主要用于和python交互,当然也可在C++中方便使用。使用比较便捷。效果如下: auto lst = vector_create({"Tom"s,22,3.14}); print(lst) 输出: ['T.原创 2021-11-25 14:54:15 · 3313 阅读 · 7 评论 -
C++使用类似python的list类的封装(tcy)
C++使用类似python的list类的封装原创 2022-06-13 17:24:59 · 2204 阅读 · 3 评论 -
C++ tuple作为函数的输入输出参数 tcy
本篇主要说明怎么使用tuple作为函数的输入及输出参数;以及参数如何解包。原创 2022-06-05 14:41:27 · 1853 阅读 · 0 评论 -
boost::hash 基本使用(tcy)
boost::hash原创 2022-06-04 15:53:17 · 2372 阅读 · 0 评论 -
C++数组和python数组相互转换(pybind11 numpy和指针数据转换) tcy
1.实例:指针-->numpy#include <iostream>#include<pybind11/pybind11.h>#undef max//放在<pybind11/numpy.h>之前(#define NOMINMAX有时不起作用)#include<pybind11/numpy.h>namespace py = pybind11;using namespace py::literals; //*指针-->nump.原创 2021-08-30 15:51:48 · 6499 阅读 · 5 评论 -
C++ 类的成员函数指针(用作函数参数) tcy
这个概念主要用在C++中去实现"委托"的特性. 但现在C++11 中有了 更好用的function/bind 功能.但对于类的成员函数指针的概念我们还是应该掌握的.类函数指针 就是要确定由哪个 类的实例 去调用 类函数指针所指的函数第一部分:函数指针float add(float a, float b) { return a + b; }float sub(float a, float b) { return a - b; }typedef float(*pf)(float, ..原创 2021-08-23 19:38:32 · 2883 阅读 · 0 评论 -
halcon C++编程 第22讲 图像镜像 tcy
用途: 本文利用矩阵乘法实现图像的镜像 包括沿x,y轴及对角线实现镜像注意: 镜像点的选取:以三角形为例 水平或垂直线中心坐标或水平垂直线的交点坐标*[1 0 Px] [M M 0] [1 0 -Px] *[0 1 Py] * [M M 0] * [0 1 -Py] * HomMat2D*[0 0 1] [0 0 1] [0 0 1] read_image(img,'C:/Users/Administrator/Desktop/data/mir...原创 2021-08-06 06:55:40 · 1815 阅读 · 0 评论 -
halcon C++编程 第21讲 halcon数据类型(tcy)
1.1.分类:1) 图标参数:HObject(HImage,HRegion,HXLD(HXLDCont,HXLDPoly))2) 控制参数:HTuple (bool,str(HString),int(Hlong),real(double))句柄HHandle3) vector1.2.算子参数:输入图形,输出图形参数,输入控制参数,输出控制参数2.图标对象 2.1.说明: 图标参数类的基类是类HObject,它管理数据库中的条目,即对象的复制或释放. HObject.原创 2021-06-24 16:59:43 · 2324 阅读 · 0 评论 -
python调用Halcon库(halcon库打包供python调用)
最近在做影像项目,发现在C++端调试halcon每次编译挺耗时间,同时使用不够方便,于是打包python库。系统必须是window10 64系统,python3。采用pybind11封装原创 2021-06-20 23:33:34 · 12328 阅读 · 14 评论 -
C++ char和wchar_t相互转换及整数和字符串2,8,16进制相互转换
解决解决解决原创 2021-06-15 19:24:38 · 1159 阅读 · 0 评论 -
pybind11 void* 指针int* add(int* ,names**)参数返回值 (tcy)
ffffffffffff原创 2021-06-07 14:06:00 · 4036 阅读 · 4 评论 -
halcon C++编程 第20讲 HWindow 显示图像(tcy)
1.1.函数汇总:方法 说明 explicit HWindow(Hlong handle); HLong GetHandle()const 获取窗口句柄 HWindow(Hlong Row, Hlong Column, Hlong Width, Hlong Height, void* FatherWindow, const HString& Mode, const HString& Machine); void OpenWindow(Hlong R..原创 2021-04-21 12:28:27 · 3974 阅读 · 0 评论 -
C++ VS2017 创建动态库Dll实例(命名空间的类导出,STL成员)
本实例主要讲述C++类导出dll,含命名空间及STL类型的成员。理论不讲。采用静态调用及动态调用,发现静态调用比较方便1.非基本数据类型的成员变量要导出:方法1:采用指针class DLL_API VecClass{ public: VecClass() { ptrVec=new std::vector<int>(); } ~VecClass() { delete ptrVec; ptrVec = nullptr; }... private: std::vecto.原创 2021-04-15 17:14:31 · 1758 阅读 · 0 评论 -
VS2017 C++ Catch单元测试-实例 tcy
网上很多资源大都原文档的翻译,具体怎么做我没有找到更好的实例,于是自己写一个函数及类的基本测试步骤。本着使用,理论不讲。基本的注意事项我在程序中有注释。我用catch的原因是方便,不用设置VS,代码容易理解,简单易上手,对于ATL的调试比较复杂,在此没有涉及。原文档很多讲在控制台下的调试(参考我的上一篇博文)我觉得用途不是太大,且需要一些时间学习。按照本测试方式你能马上上手,仅仅需要包含头文件TEST_MAIN.h就可以。原因吗你慢慢研究吧!//TEST_MAIN.h#pra..原创 2021-04-13 16:23:40 · 585 阅读 · 0 评论 -
C++ QT多线程中信号槽(传递自定义数据类型) tcy
1.1.传递复杂数据类型QT内部提供一组宏: Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE(Container)声明关联容器元类型 Q_DECLARE_METATYPE(Type) 声明元类型 Q_DECLARE_OPAQUE_POINTER(PointerType) 声明不透明的指针 Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(Contai.原创 2021-04-09 15:41:45 · 1736 阅读 · 0 评论 -
VS2017目录结构-多项目开发 tcy
1.1.说明: 多项目开发尽可能实现代码模块化,减少对其它项目依赖性,最好能够独立实现它设计功能 如创建一个解决方案,一个UI窗体部分,一个网络通信,一个视觉采集,一个视觉算法 在网络项目不会使用任何关于C++窗体东西,减少项目间耦合性,让模块功能独立不依赖于另一项目1.2.步骤: 创建解决方案TcyVisionSystem,添加项目TcyHalcon基于控制台,添加项目TcyVisionUI基于窗体 解决方案--属性--通用属性--启用项目: 当前启动项目:... 多个启动项目:适.原创 2021-04-06 02:28:45 · 1166 阅读 · 0 评论 -
VS2017 C++ Catch单元测试-命令行参数及测试显示 tcy
1.使用: 先将测试程序生成xxx.exe文件,然后在控制台中执行特定的命令 可以通过下面-?来查询命令行选项参数 C:\Users\Administrator\source\repos\tcy_Project\x64\Debug>tcy_Project.exe -?2.实例:说明:xxx.exe 后缀可以省略 C:\Users\Administrator\source\repos\tcy_Project\x64\Debug>实例1:显示test case总体情况:.原创 2021-04-02 19:40:40 · 678 阅读 · 0 评论 -
VS2017 QT 两个窗口之间相互传递数据 tcy
1.1.传递方法有:1)全局变量: 不建议2)信号槽: 在窗体内传递信号比较有优势,不建议多用。窗口之间相互传递数据容易被绕晕 具体原因参考https://blog.csdn.net/wb175208/article/details/104724389/3)利用成员函数直接修改:方便,易懂建议窗口间相互传递采用4)利用类接口:比较高大上,多封装了个类接口1.2.函数: QObject::connect(const QObject *sender, const c.原创 2021-03-31 01:50:55 · 2276 阅读 · 0 评论 -
VS2017 Qt Designer5.14.2 安装配置 tcy
1.1.官网下载:qt-opensource-windows-x86-5.14.2.exe 开源版需注册 https://download.qt.io/archive/qt/5.14/5.14.2/submodules/1.2.安装: 仅安装msvc_641.3.安装Qt VS工具 1) VS2017选择“工具” >“扩展和更新” >“在线”,然后搜索Qt Visual Studio工具 安装或更新Qt VS工具 2) 设置Qt版本:Qt VS Tool->Qt .原创 2021-03-29 02:43:26 · 1019 阅读 · 0 评论 -
halcon C++编程 第19讲 仿射变换需了解halcon的2D坐标系 函数(tcy)
1.1.坐标系分类:1)HALCON标准坐标系:亚像素精确坐标系 标准坐标系,图像坐标系 定义:像素中心坐标,HALCON标准子像素坐标系 原点位于左上角(-0.5,-0.5)像素中心;右下角(rows+0.5,cols+0.5) 用途: affine_trans_point_2d 以_2d结尾的函数还可以用于像素坐标系 area_center2)像素坐标系:边缘居中坐标 定义:原点位于左上角(0,0)像素中心;右下角(rows-1,cols-1) 用途:矩阵运算.原创 2021-03-26 20:26:37 · 1638 阅读 · 0 评论 -
halcon C++编程 第18讲 文本显示绘图(鼠标绘图拖动)函数(tcy)
1.1.显示函数:disp_缩放文本绘图消失disp_text 在窗口中显示文本 disp_cross 在窗口中显示十字disp_arrow 在窗口中显示箭头disp_line 在窗口中绘制线条disp_circle 在窗口中显示圆圈disp_arc 在窗口中显示圆弧disp_ellipse 显示椭圆disp_rectangle1 显示与坐标轴对齐的矩形disp_.原创 2021-03-26 15:04:26 · 3634 阅读 · 0 评论 -
halcon C++编程 第17讲 C++窗口函数(tcy)
1.1.窗口函数: dev_clear_window 清除活动图形窗口内容 dev_close_window 关闭活动图形窗口 dev_disp_text 在当前图形窗口中显示文本 dev_display 在当前图形窗口中显示图像对象 dev_get_window 返回活动图形窗口句柄 dev_open_window 打开一个新图形窗口 dev_set_color 设置一或多种输出颜色 de.原创 2021-03-26 12:16:03 · 2449 阅读 · 0 评论 -
halcon C++编程 第16讲 C++系统函数 - 附加图像路径(tcy)
1.函数:set_system(SystemParameter, Value )设置系统参数set_system(SystemParameter, Value) 获取系统参数参数:'halcon_dir': HALCON安装根目录'image_dir' : 附加目录-多目录用分号Windows或冒号Unix分隔。也可用环境变量HALCONIMAGES '3d_model_dir':3D模型文件路径-可多目录'clock_mode': 'performance_counter'最好以高.原创 2021-03-25 21:07:57 · 520 阅读 · 0 评论 -
halcon C++编程 第15讲 C++调用HDevEngine程序或单过程(tcy)
1.1.用途:C ++调用HDevEngine程序或单过程;用于原型设计及开发运行应用程序1.2.函数: HDevEngine HDevEngine类管理全局设置 HDevProgram 加载HDevelop程序-获取有关该程序一般信息 HDevProgramCall 执行程序-并获取变量值 HDevProcedure 加载HDevelop过程-并获取有关该过程常规信息 HDevProcedureCall 将输入参.原创 2021-03-25 12:18:56 · 3063 阅读 · 1 评论 -
halcon C++编程 第14讲 HImage图像基本运算(tcy)
图像基本运算1.1.说明:以图像为单位进行操作(对图像中所有像素同时进行)是矩阵运算可以原地完成1.2.函数:1)四则运算: add_image(img_x1,img_x2,img_y,double Mult=0.5,Add=0) 加法-图像合成,降低随机噪声 HImage AddImage(const HImage& Image2, const HTuple&[double] Mult, const HTuple&[double] Add) c.原创 2021-03-23 15:19:26 · 1526 阅读 · 0 评论 -
halcon C++编程 第13讲 图像HObject(tcy)
1.1.用途: 表示iconic对象实例.images, regions and XLDs的基类1.2.函数:函数 备注 1.构造函数: HObject() HObject(const HObject& source) explicit HObject(Hkey key, bool copy=true); 根据对象ID创建 注2 const HObject operator [] (Hlong index) const; ...原创 2021-03-23 11:39:53 · 3227 阅读 · 0 评论 -
halcon C++编程 第12讲 图像HImage(tcy)
1.1.说明: 1)图形参数(Iconic)Images在Halcon中: img = Channel + Domain(定义域) , 像素点存放在Channel矩阵中,根据ROI来描述Image 2)Multiple channels //多通道图像,可以是灰度图像或RGB图像 3)Arbitrary region of interest //ROI区域图像 4)Multiple pixel types .原创 2021-03-18 16:00:19 · 2113 阅读 · 0 评论 -
halcon C++编程 第11讲 HDict字典 (tcy)
1.1.用途:由key来访问存储的元素,只接收Htuple,和HObject两种类型1.2.说明:不够灵活,用std::map替代1.3.class HDict : public HHandle构造函数: HDict(); //创建一个新的空字典 HDict(const HDict& source) HDict(const HHandle& handle); explicit HDict(Hlong handle.原创 2021-03-18 13:34:43 · 3487 阅读 · 4 评论 -
halcon C++编程 第9讲 HHandleBase,HHandle (tcy)
1.1.句柄 Handle用于管理一组复合变量(类似window句柄) 为程序设计方便性,该类变量只通过一个唯一的整数数值来标识 如shape-based matching中的models; 图形视窗、档案、sockets、取像设备等均以handle来标识要操作的对象 用来描述窗体、文件等,句柄不能是常量1.2.class HHandleBase,HHandle 1.class HHandleBase: HHandleBase构造...原创 2021-03-18 12:35:53 · 1009 阅读 · 2 评论 -
halcon C++编程 第8讲 序列化与反序列化(tcy)
1.1.定义: 把对象转换为字节序列的过程称为对象的序列化 把字节序列恢复为对象的过程称为对象的反序列化1.2.对象的序列化主要有两种用途: 1) 把对象的字节序列保存到硬盘上,通常存放在一个文件中 2) 在网络上传送对象的字节序列1.3.说明: 应用中需对某些对象进行序列化,让它们离开内存空间入住物理硬盘以便长期保存 如Web服务器中Session对象,当有10万用户并发访问有可能出现10万个Session对象, 内存可能吃不消,要求把一些seesion先序列化到硬盘中,等要用时再.原创 2021-03-18 11:06:27 · 1659 阅读 · 0 评论 -
halcon C++编程 第7讲 图像读写显示(tcy)
C++ 实现图片的读写;模仿opencv的格式写图片自动按后缀进行。图片显示HObject,HImage单张。同时封装一个一次显示多张图片。测试:#include <iostream>#include <vector>#include <assert.h>#include "imageheader.h"using namespace std;int main() { const char* girl = "../pictures/gi..原创 2021-03-17 19:34:25 · 2611 阅读 · 1 评论 -
halcon C++编程 第6讲 HVector(tcy)
1.1.说明: HDevelop中变量类型:tuples,iconic objects,vector 1)iconic objects数据类型即图标对象,指的是 图像、区域和XLD数据的总称 2)HALCON向量是一个容器,可容纳任意数量的相同数据类型(即,元组,图标对象或向量)和维的元素 与C++标准模板库中向量相同;向量类型(即向量尺寸和元素类型)在实例时定义且在其生存期内无法更改 一维向量可以是元组向量或标志性对象向量。二维向量可以是元组向量的向量或标志性对象向量的向量.原创 2021-03-16 21:44:35 · 1413 阅读 · 1 评论 -
halcon C++编程 第5讲 HString(tcy)
1.1.注意: 指向字符串数据指针只要未修改HString,指针就有效1.2.函数:1)构造函数: HString(); //创建一个空字符串 HString(const char* text); //从C字符串创建 HString(const wchar_t* text); //从宽字符串 HString(const HString& string); .原创 2021-03-16 15:56:31 · 1603 阅读 · 0 评论 -
halcon C++编程 第4讲 HObject/HImage Mat相互转换(tcy)
网上有很多相互转换程序,但并不知那个正确,本文对相互转换后的结果和原对象比较是否相同判断转换是否正确。经测试ok.本文包括转换代码及测试是否相同。1.转换程序:/************************************HObject转为Mat:time:2021/3/16 V1.0*************************************/cv::Mat HalconClass::HObjectToMat(const HalconCpp::HObject&..原创 2021-03-16 10:34:52 · 3807 阅读 · 2 评论 -
halcon C++编程 第3讲 HTuple(tcy)
1.1.1.数据类型:typedef long long HLongtypedef int HINTenum HTupleType{ eTupleTypeEmpty = UNDEF_PAR, //空的元组尚未定义数据类型 0 eTupleTypeLong = LONG_PAR, //元组是整数的纯数组 1 eTupleTypeDouble = DOUBLE_PAR,//元组是浮点值的纯数组 2 eTupleTypeString原创 2021-03-12 22:07:34 · 8291 阅读 · 1 评论 -
halcon C++编程 第2讲 HTupleElement(tcy)
1.HTupleElementType:enum HTupleElementType { eElementTypeLong = eTupleTypeLong, //元素是整数值 eElementTypeDouble = eTupleTypeDouble, //元素是浮点值 eElementTypeString = eTupleTypeString, //元素是一个字符串 eElementTypeHandle = eTu.原创 2021-03-12 16:53:21 · 746 阅读 · 0 评论 -
halcon C++编程 第1讲 VS2017配置(tcy)
1.VS设置: 1)project---settings---Link属性页中添加halconcpp.lib 2)project---settings---C/C++属性---Preprocessor---添加目录$(HALCONROOT)\include,$(HALCONROOT)\include\cpp; 3)project---settings---Link属性---input---添加路径$(HALCONROOT)\lib\i586-nt4; 4)在程序中添加类头文件:#include ".原创 2021-03-12 16:30:59 · 514 阅读 · 0 评论 -
Windows10 pybind11 opencv 和numpy相互转换 (tcy)
利用pybind11实现python和C++图像之间的相互调用。将Mat类引入python中。图像相互转换通过左值引用及智能指针实现。封装了类操作及8个函数(Mat和numpy相互转换)1.dll项目文件:制作py_opencv_module.pyd add.h add.cpp sub.h sub.cpp imageHeader.h NumpyMatConver.h NumpyMatConver.cpp2.python中调用C++Mat图像2.1.python文件夹结构 p.原创 2021-02-25 17:40:51 · 1714 阅读 · 0 评论 -
Windows10 pybind11简明教程 (tcy)
本人最近在做图像处理,需要C++和python之间相互转换,用opencv做基础图形处理需要Mat和numpy相互转换,先前用swig,boost.python,及python CAPI发现都没有pybind11,函数封装非常简洁易懂,采用模板封装,不怎么设置,非常好用,推荐给大家。欢迎大家讨论有什么好的方法共同分享。1.目录:1.Windows10 pybind11安装环境配置VS2017,MinGW64编译 tcy2.Windows10 pybind11 C++导出变量 (tcy)3原创 2021-02-08 22:37:16 · 750 阅读 · 0 评论 -
Windows10 pybind11 C++调用python-执行python表达式文件 (tcy)
C++执行Python表达式文件1.函数: T py::eval(str, scope) str=python表达式,scope python主模块环境 None py::exec(str,scope); str=python语句 None py::eval_file(str file, scope) str=python文件 用途: pybind11提供eval,exec和eval_file函数来评估Python表达式和语句.原创 2021-02-08 22:19:23 · 1410 阅读 · 1 评论