自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (3)
  • 收藏
  • 关注

原创 C#多进程通信的例子

app1using System;using System.Collections.Generic;using System.IO.MemoryMappedFiles;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace 多进程间通信1{ class Program { static void Main(stri

2020-06-30 13:35:11 867

原创 二叉树的前序遍历

一、题目对于一颗二叉树,深度优先搜索(Deepth First Search)是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。以上面二叉树为例,深度优先搜索的顺序为:ABDECFG。怎么实现这个顺序呢 ?深度优先搜索二叉树是先访问根结点,然后遍历左子树接着是遍历右子树,因此我们可以利用堆栈的先进后出的特点,现将右子树压栈,再将左子树压栈,这样左子树就位于栈顶,可以保证结点的左子树先与右子树被遍历。二、代码class Solution {public: //深度优先搜索

2020-06-28 22:36:07 380

转载 二叉树的路径总和

一、题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。二、解析1、最直接的方法就是利用递归,遍历整棵树:如果当前节点不是叶子,对它的所有孩子节点,递归调用 hasPathSum 函数,其中 sum 值减去当前节点的权值;如果当前节点是叶子,检查 sum 值是否为 0,也就是是否找到了给定的目标和。class Solution {public: bool hasPathSum(TreeNode* root, int sum)

2020-06-28 22:02:28 740

转载 二叉树的层序遍历

一、题目二、解析我们可以想到最朴素的方法是用一个二元组 (node, level) 来表示状态,它表示某个节点和它所在的层数,每个新进队列的节点的 level 值都是父亲节点的 level 值加一。最后根据每个点的 level 对点进行分类,分类的时候我们可以利用哈希表,维护一个以 level 为键,对应节点值组成的数组为值,宽度优先搜索结束以后按键 level 从小到大取出所有值,组成答案返回即可我们可以用一种巧妙的方法修改 BFS: 首先根元素入队 当队列不为空的时候...

2020-06-22 22:36:56 243

转载 模式匹配——枚举法的实践

leetcode

2020-06-22 22:17:27 711

原创 C++创建信号量 CreateSemaphore

一、定义 Semaphore也是一个线程同步的辅助类,可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。1.创建或打开命名或未命名的信号量对象。HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // SD LONG lInitialCount, // init

2020-06-22 13:23:19 6487

原创 Halcon识别二维码

一、流程二、实例原图识别代码* Initialize image path and visual settingsdev_update_off ()dev_close_window ()ImageFiles := 'datacode/ecc200/ecc200_cpu_0'ImageNum := 5read_image (Image, ImageFiles + '01')dev_open_window_fit_image (Image, 0, 0, -1, -1

2020-06-21 22:18:37 662

原创 Halcon识别旋转的一维码

原图识别结果:代码:* * Orientation with reading direction of a bar code* read_image (Image, 'barcode/ean13/ean1305')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window (0, 0, Width, Height, 'black', WindowHandle)dev_display (Im

2020-06-21 21:36:57 393

转载 C++管道的例子——服务端与客户端通信

1. 服务端用CreateNamedPipe创建一个命名管道并使用ConnectNamedPipe等待客户端的连接。2. 客户端使用WaitNamedPipe连接成功后,用CreateFile打开管道并使用WriteFile向管道中写入一段数据(即向服务端发送消息)。3. 服务端使用ReadFile从管道中读取数据后(即收到消息)再向管道中写入确认信息表明已经收到客户端传输的数据(即通知客户端已收到)。4. 客户端收到确认信息后结束,调用CloseHandle关闭管道(该管道是CreateFil

2020-06-20 11:25:08 1354

原创 C++的创建命名管道(CreateNamedPipe)

一、命名管道(Named Pipes)管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。匿名管道(Anonymous Pipes)是在父进程和子进程间单向传输数据的一种未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。命名管道,顾名思义,这个管道肯定是有名字的。通过管道的名字来确保多个进程访问同一个管道。事实上,命名管道不仅可在同一台计算机的不同进程

2020-06-20 10:54:45 13312

原创 Halcon识别一维码

原图识别代码:* Read bar codes of type 2/5 Industrial* create_bar_code_model ([], [], BarCodeHandle)* We expect to decode a single bar code per imageset_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)dev_close_window ()dev_open_windo

2020-06-18 22:45:59 538

原创 WPF 实现多语言

1、编写Chinese.xml,English.xml文件2.、在项目的App.xml文件中<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <Resour...

2020-06-18 16:40:59 550

原创 基于灰度的模板匹配(标准)

原图创建模板在加了噪声的图中识别代码:dev_close_window ()dev_open_window (0, 0, 599, 464, 'black', WindowID)read_image (Image, 'pumpe')dev_set_draw ('margin')hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_translate (HomMat2DIdentity, 64, 64, HomMat2DTran.

2020-06-15 21:58:09 1008

原创 基于灰度的模板匹配(带旋转角度)

原图选择模板旋转180度进行识别继续旋转 ,依然可以识别代码:* Searching the best matching of a template in an image (with rotation).* dev_close_window ()read_image (For6, 'for6')get_image_size (For6, Width, Height)dev_open_window (0, 0, Width, Height, 'black',

2020-06-15 21:43:56 3016

原创 MFC中PeekMessage与GetMessage的区别

一、PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中的消息派发出去。不同点:GetMessage的主要功能是从消息队列中“取出”消息,消息被取出以后,就从消息队列中将其删除;而PeekMessage的主要功能是“窥视”消息,如果有消息,就返回true,否则返回false。也可以使用PeekMessage从消息队列中取出消息,这要用到它的一个参数(UINT wRemoveMsg),如果设

2020-06-15 10:01:10 992

原创 C#的字节流Stream

一、原理读写内存-MemoryStream类MemoryStream类用于向内存而不是磁盘读写数据。MemoryStream封装以无符号字节数组形式存储的数据,该数组在创建MemoryStream对象时被初始化,或者该数组可创建为空数组。可在内存中直接访问这些封装的数据。内存流可降低应用程序中对临时缓冲区和临时文件的需要。1、MemoryStream类封装一个字节数组,在构造实例时可以使用一个字节数组作为参数,但是数组的长度无法调整。使用默认无参数构造函数创建实例,可以使用Write方法写入,.

2020-06-14 10:56:29 2345

原创 三数之和——双指针法的实践

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。答案class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { int n = nums.size(); sort(n

2020-06-13 21:09:06 272

原创 MFC 在父对话框中内嵌子对话框

1、首先创建要在对话框里显示的那个对话框关联一个自定义类CChildDlgOne,设置这个对话框的属性:1)、“Style”选择“Child”;中文版“样式”选择“下层”。2)、“Border”为“None”;中文版“边框”选择“无”。2、关联父窗口—头文件添加成员变量3、指定窗口位置在父窗口中添加pic控件IDC_DEPLOY_AREA,Visible属性去掉,用来指定具体位置在父窗口cpp初始化函数OnInitDialog()添加参考:https://blo

2020-06-12 17:42:24 992

原创 MFC的SendMessage与PostMessage的区别

一、定义直接看MSDNSendMessageThis is function sends the specified message to a window or windows.SendMessage calls the window procedure for the specified window anddoes not return until the window procedure has processed the message.The PostMessage func

2020-06-11 11:42:04 1372

原创 C++的strcmp

strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。源码1int strcmp(const

2020-06-10 14:23:13 17632

原创 C++使用CreateMutex

一、定义HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针BOOL bInitialOwner, // 初始化互斥对象的所有者LPCTSTR lpName // 指向互斥对象名的指针);第一个参数是一个指向SECURITY_ATTRIBUTES结构体的指针,一般的情况下,可以是nullptr。第二个参数类型为BOOL,表示互斥锁创建出来后是否被当前线程持有。第三个参数类型为字符串(con

2020-06-10 11:08:21 1664

原创 未知的生成错误“因为没有预加载,所以无法解析程序集“System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f1

搜索System.Drawing.dll,添加到工程中

2020-06-09 10:49:59 2998

原创 Popup控件

一、介绍常用的属性IsOpen: 布尔值,指示 Popup 控件是否显示。比如说:IsOpen="{Binding ElementName=PCheckBox,Path=IsChecked}" 是通过绑定CheckBox的IsChecked属性来控制Popup的弹出。StaysOpen: 布尔值,指示在 Popup 控件失去焦点的时候,是否关闭 Popup 控件的显示。PopupAnimation:指示显示窗口时是否使用动画,只有在 AllowsTransparency 等于true时此属

2020-06-09 09:39:39 777 1

转载 顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解答方案一:模拟打印矩阵的路径。初始位置是矩阵的左上角,初始方向是向右,当路径超出界限或者进入之前访问过的位置时,则顺时针旋转,进入下一个方向。判断路径是否进入之前访问过的位置需要使用一个与输入矩阵大小相同的辅助矩阵 visited\textit{visited}visited,其中的每个元素表示该位置是否被访问过。当一个元素被访问时,将 visited\textit{visited}visited 中的对应位置的元素设为

2020-06-07 21:49:52 1512

原创 多模板的模板匹配Halcon

原图一模板一原图2模板2原图3模板3目标图代码:* This example program shows how to use HALCON's shape-based matching* to find multiple different models in one call to find_shape_models. Note that this* is one mode of operation that is freque..

2020-06-07 20:11:21 3953

原创 C#获取到相机图像后调用回调函数处理图像

SDK提供注册回调函数的接口,用户可以将自己定义的回调函数注册在SDK内部,SDK获取到相机图像会主动回调到应用程序供用户处理,此方式可以简化用户程序逻辑。一、流程•回调取图方式使用场景:可以使用 MV_CC_RegisterImageCallBackEx_NET() 接口注册回调函数。回调函数可以自定义,用于自动回调获取的图像。此方法可以简化应用程序逻辑。•注意事项:a、回调函数中不建议有耗时操作、线程锁等,容易造成回调阻塞。b、Pdata返...

2020-06-05 17:06:34 6931 5

原创 C#操作海康SDK主动获取图像

SDK提供主动获取图像的接口,用户可以在开启取流后直接调用此接口获取图像,也可以使用异步方式(线程、定时器等)获取图像。主动获取图像有两种方式:方式一:调用 MV_CC_StartGrabbing_NET() 开始采集,需要自己开启一个buffer,然后在应用层循环调用 MV_CC_GetOneFrameTimeout_NET() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。方式二:调用 MV_CC_StartGrabbing_NET(...

2020-06-04 17:34:43 12796 5

原创 ListBox的Datatemplate中添加触发器

选中ListBoxItem,更改样式 <ListBox.ItemTemplate> <DataTemplate> <Border Style="{StaticResource MenuItem}" Width="285" Name="PART_Border"> <TextBlock Grid.Row="0" Grid.Column="1"

2020-06-04 17:00:33 795

原创 从文件中读取模板

写入模板到文件,再读取模板,基于形状匹配的算法原图创建模板代码* --------------------------------------------------------* This example program shows how to reuse a created model.* --------------------------------------------------------* general configuration of HDev..

2020-06-03 21:47:22 342 1

原创 基于形状的模板匹配的一个实例

按照上篇讲的套路,我们再来实现一个例子这里有如下原图找出所有的格子一、选取区域二、创建模板创建后,模板的坐标为(0,0),即左上角三、寻找模板代码:* Many dies are typically etched on a wafer. Before the single* dies can be picked by a die bonder and placed onto a lead* frame, they must be diced f.

2020-06-03 21:28:42 576

原创 基于形状的模板匹配来寻找稍微变形的图像

方案:直接用整幅图像做模板匹配下面是过程:原图创建模板,下图是模板的轮廓需要识别的图像识别结果代码:dev_update_off ()read_image (ModelImage, 'food/cocoa_package_model')dev_close_window ()dev_open_window_fit_image (ModelImage, 0, 0, -1, -1, WindowHandle)set_display_font (Wind..

2020-06-03 21:00:35 1066

原创 UIElement.​Clip 属性

获取或设置用于定义元素内容轮廓的几何图形。Gets or sets the geometry used to define the outline of the contents of an element. 这是依赖项属性。This is a dependency property.public: property System::Windows::Media::Geometry ^ Clip { System::Windows::Media::Geometry ^ get(); void set

2020-06-03 14:54:32 168

原创 基于相关性(NCC)的模板匹配Halcon

一、原理归一化相关性.NCC,(normalization cross-correlation),顾名思义,就是用于归一化待匹配目标之间的相关程度,注意这里比较的是原始像素。通过在待匹配像素位置p(px,py)构建3*3邻域匹配窗口,与目标像素位置p'(px+d,py)同样构建邻域匹配窗口的方式建立目标函数来对匹配窗口进行度量相关性。它是基于图像灰度信息的匹配方法。NCC的定义在[-1,1]绝对尺度范围之间衡量两者的相似性。相关系数刻画了两者之间的近似程度的线性描述。一般说来,越接近于1,两

2020-06-02 22:12:05 5765

原创 DataGrid的样式——添加按钮控件

模板的使用而已,不仔细介绍了,直接上代码。 <DataGrid Name="datagrid" AutoGenerateColumns="False" Style="{StaticResource dataGridStyle}" CanUserAddRows="False" ItemsSource="{Binding UserInfoList}" Ro

2020-06-02 14:16:28 573 1

原创 手眼标定(九点法)

一九点法标定是工业上使用广泛的二维手眼标定,所谓二维,即工作平面限制在一个平面上,常用于从固定平面抓取对象进行装配等操作,这种应用场景可以满足大多数的工业应用场景。九点标定的作用:1.求解x和y方向的分辨率2.求解图像坐标到xx坐标的仿射变换矩阵二、分辨率求解经过图像处理,我们可以得到九个点的图像上的坐标,然后按照从左到右,从上到下的规律拍好,利用这些点去计算分辨率//pt:点集;hj:行距;lj:列距bool CvGetClibrateData(CvPoint *

2020-06-02 11:35:00 16604 5

HalconShowTest (1) (1).zip

c#,c++,halcon联合,界面使用wpf,底层c++,halcon的库,实现一张图片的显示。未来可以继续扩展,调用halcon的函数,这是一个基本的demo

2020-06-09

WindowsFormsApp1.zip

GDI+显示图片,使用winform,实现使用鼠标拖拽,画矩形框

2019-10-30

RulerControlForWPF-master.zip

实现类似word文档的标尺功能,标尺可以缩放,有cm(厘米)或者inch(英寸)两种模式

2019-10-11

空空如也

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

TA关注的人

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