自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andrew's Blog

陌上花随暮雨飞。

  • 博客(76)
  • 收藏
  • 关注

原创 SVG图标显示

SVG图标显示

2024-04-07 18:19:14 268

原创 WPF程序添加托盘图标

WPF托盘图标显示

2024-04-07 16:59:25 548 1

原创 图像处理领域的应用

图像处理领域应用

2023-12-06 11:23:18 365

原创 Image Processing Toolbox入门

Image Processing Toolbox入门

2023-12-06 11:21:57 215

原创 HALCON图像坐标与控件坐标相互转换

HALCON图像坐标与控件坐标相互转换

2023-12-01 14:20:25 253

原创 WPF MVVM模式下如何将UI窗口变量传参到Viewmodel层

WPF MVVM模式下将UI窗口变量传参到Viewmodel层

2023-11-30 16:16:36 861

原创 WPF窗口样式的比较

WPF窗口样式的比较

2023-11-30 14:00:26 460

原创 Halcon印字缺陷检测

在半导体行业,印字缺陷检测占了很大比例。打印标签上字符的缺失、字符的脏污等印字不良都需要检出

2023-07-05 11:29:15 2095 3

原创 字符水平方向与垂直放投影的计算

图像水平方向矫正后,根据输入的字符图像,阈值分割,生成二值化图像,计算二值化图像在X、Y方向的投影图像

2023-07-04 10:27:26 176

原创 NamedPipeClientStream连接远程主机异常的处理

NamedPipeClientStream连接远程主机异常的处理

2023-06-30 17:46:49 306

原创 适配器模式(结构型模式)

将一个类的接口转换成客户希望的另一个接口,让接口不兼容的类可以一起工作。

2022-09-23 19:42:06 341 1

原创 单例模式的学习

确保一个类只有一个实例,并提供一个全局访问

2022-09-20 19:55:29 102

原创 原型模式的学习

使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象

2022-09-15 19:38:14 144

原创 HALCON边缘检测

边缘检测的算法分类

2022-09-02 11:28:29 1569

原创 建造者模式

将一个复杂对象的创建与表示分离 使同样的构建过程可以创建不同的表示。

2022-09-02 10:08:53 113

原创 抽象工厂模式

提供一个创建一系列相关或相互依赖对象的接口,无须指定具体的类

2022-08-31 20:27:32 183

原创 工厂方法模式

工厂父类负责定义创建产品对象的公共接口,工厂子类负责生成具体的产品对象

2022-08-29 11:03:17 147

原创 简单工厂模式

简单工厂模式:关注对象的创建过程 对类的实例化过程进行抽象 对象的创建与使用分离。

2022-08-27 15:40:45 79

原创 C#设计模式概念总结

里氏代换原则依赖倒转原则接口隔离原则迪米特法则

2022-08-27 15:35:18 408

原创 OCP-开闭原则

开闭原则

2022-08-17 20:49:20 100

原创 单一职责原则

设计模式学习之单一职责原则

2022-08-17 19:42:30 162

原创 C++ MFC窗口与WPF 窗口的相互嵌套

MFC窗口与WPF窗口相互嵌套

2022-08-12 18:05:46 1418

原创 Halcon read_region引起的异常

在Halcon IDE中,使用read_region()算子读取本地存储的region区域时,一直显示的都是正常的。如下所示:导出代码到编辑器Visual Studio中,读取相同的region区域时,显示结果如下:测试发现读取多次时,可能每次的读取结果都不同,导致区域被裁剪。看算子手册说明,需要在调用read_region()算子前调用set_system(‘clip_region’,‘false’)进行设置。调用后读取成功,显示如下:...

2022-04-22 19:35:29 1088

原创 WPF 数据对象的绑定及转换

一、WPF DataGrid数据的绑定(1)列类型为DataGridCheckBoxColumn时,可绑定一个bool型变量,实现CheckBox是否选中 <DataGridCheckBoxColumn Header="USE" Binding="{Binding IsUse}"/> private bool _isUse; public bool IsUse { get { return _isUse; }

2022-02-25 20:51:54 926

原创 WPF DataGrid实现一键全选中功能

实现效果如下:界面层<DataGrid ItemsSource="{Binding Items1}" CanUserAddRows="False" AutoGenerateColumns="False" HeadersVisibility="All"> <DataGrid.Resources> <model:BindingProxy x:Key="DataContextProxy" Data="{Binding}" />

2021-11-29 16:00:19 1751 2

原创 INI配置文件的读写

INI文件是以键值对的形式存储的。由节、键、值组成。节[section]参数1(键=值)name1=value1参数2(键=值)name2=value2······public class INIHelper { [DllImport("kernel32")] private static extern int GetPrivateProfileString(string appName,string keyName,string defaultVal

2021-11-29 15:45:05 331

原创 NPOI操作Excel

NPOI操作Excel的基本用法文件的读入 public static void ReadExcel(string excelPath) { FileStream fs = new FileStream(excelPath,FileMode.Open, FileAccess.Read); if(excelPath.EndsWith(".xlsx")) { workbook

2021-11-27 16:00:46 415

原创 VTK学习

VTK学习渲染窗口的显示 vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New(); renWin->AddRenderer(renderer); renWin->SetSize(640, 480); renWin->Render(); renWin->SetWindowName("002"); vtkS

2021-11-27 15:24:41 371

原创 Halcon倾斜字符矫正

Halcon倾斜文本矫正1.图像预处理2.字符区域定位3.计算字符区域外接旋转矩形,旋转图像1.图像预处理读入图像后,通过边缘提取,轮廓筛选,获取字符所在的区域edges_sub_pix (ImageReduced, Edges, 'canny', 9, 30, 90)select_contours_xld (Edges, SelectedContours, 'contour_length', 150, 1200, -0.5, 0.2.字符区域定位对提取的轮廓进行旋转矩形拟合,生成不同的多边

2021-08-13 19:21:11 1347

原创 圆形的生成

圆形的生成圆形的扫描转换中点画圆Bresenham画圆圆形的扫描转换在屏幕像素点阵中确定一组最佳逼近于圆的像素点,并用指定的颜色显示出来。由于圆具有对称性,在进行扫描转换时,只需迭代生成八分之一圆的最佳像素逼近点,圆的其他部分通过简单的坐标对称就可以直接得到。中点画圆void MIDPOINT_Circle(CDC *pDc,CPoint cPt ,int R,COLORREF crColor){ int x,y,d; x=0; y=R; d=5-4*R; pDc->SetPi

2021-08-07 15:44:28 432

原创 交互式绘图技术与双缓存技术

交互式绘图技术与双缓存技术交互式绘图技术双缓存技术交互式绘图技术交互式绘图技术,又称之为橡皮筋技术。能显示图形的动态变化效果,例如,随着鼠标在视图窗口的移动,能够实时动态地生成图形。绘图功能中有一个“异或”的绘图特性,即在屏幕上用异或的模式画图形,相同的位置重新画一次此图形,则会在屏幕上擦除上一次所绘制的内容。 CDC *pDC = GetDC(); pDC->SetROP2(R2_NOT); DrawLine(pDC,lTmpPoint1,lTmpPoint2,m_cDrawColor)

2021-08-07 14:58:48 127

原创 直线的生成

图形的扫描转换(图形的光栅化)实现在屏幕上显示图形,可通过寻找屏幕上的一组像素点集,并将该组像素点集用指定的颜色显示,以此来最佳逼近图形的形状的方法直线的生成比较常用的直线扫描转换算法有三种:数值微分法(DDA);中点画线算法;Bresenham算法。数值微分法的特点是增量算法,直观、易实现。但是算法中有除法运算和浮点数,不利于用硬件实现;当图形中有大量的直线时,利用数值微分法会占用较多的内存,对运算速度会有一些影响。中点画线算法在整个运算中都是整数运算,没有出现小数,因此占有的内存相对较少,也便

2021-07-31 21:09:59 196

原创 OpenCV GApi初探

作者:Parker2019链接:https://www.jianshu.com/p/8c8c08496a2c来源:简书G-API的管线(pipeline:pipeline表示在外接程序与其宿主之间交换数据的管线段的线性通信模型。从宿主端开始,管线具有以下一系列管线段:宿主、外接程序的宿主视图、宿主端适配器、协定、外接程序端适配器、外接程序视图和外接程序。)随之被创建,事实上它是通过调用cv::GMat来完成一系列的G-API数据操作。它只是声明了要去做什么操作,而并不是直接执行什么操作。到此时也还没有

2021-07-14 11:26:54 2044 5

原创 LMI学习

1.LMI传感器操作2.模拟器窗口3.SDK开发

2021-04-27 16:43:33 583

原创 OpenCV+VTK 读书笔记

2021-04-20 20:29:36 224

原创 C# 并行编程概念介绍

C# 并行编程1.同步与异步(客户端)关注消息通信机制同步:主程序会等待被调用的方法按顺序执行完,才会继续执行。异步:主程序不会等待方法执行完,而是主程序调用异步方法后直接继续运行。异步方法会启动一个新线程来完成方法的计算。主要用于IO密集型计算。2.阻塞与非阻塞(服务器端)关注程序在等待调用结果(消息,返回值)时的状态阻塞:指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞:指在不能立刻得到结果之前,该调用不会阻塞当前线程。3.并行编程3.1硬件线程与软

2021-04-20 20:24:21 399

原创 C# 线程池与任务并行示例

多线程执行效率判断线程执行完成胡方法(1)CountdownEvent(2)AutoResetEvent默认情况下,程序运行时共享所有的处理器,也可指定特定的CPU运行Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(1);1.线程池 ThreadPoolThreadPool 类 (System.Threading) | Microsoft Docs线程池可用于执行任务、发送工作项、处理异步 I/O、代表其他线程等待以及

2021-04-12 21:39:02 324

原创 Open3D点云显示

Open3D的使用1.编译的是静态库文件(*.lib),动态库没有编译成功。2.编译时运行库选择的是 多线程 (/MT) ,因此程序使用时也要配置相同的运行库3.链接器输入中需要导入OpenG lib文件 (OpenGL32.Lib)4.加载模型显示 const char* datapath = "D:\\Open3D\\bunny.ply"; auto cloud_ptr = std::make_shared<geometry::PointCloud>(); i

2021-04-10 10:17:41 613

原创 Halcon 相机标定器

Halcon 相机标定单目相机步骤#mermaid-svg-res2aK2Avq6hdbnF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-res2aK2Avq6hdbnF .label text{fill:#333}#mermaid-svg-res2aK2Avq6hdbnF .node rect,#mer

2021-03-05 11:57:58 173

原创 点云彩色化显示

点云彩色化显示1.使用自定义颜色 PointCloud<PointXYZ>::Ptr cloud(new PointCloud<PointXYZ>); if (io::loadPLYFile("bunny.ply", *cloud) == -1) { // 读取.ply文件 cerr << "can't read file bunny.ply" << endl; return; } boos

2021-01-22 10:05:07 939 1

空空如也

空空如也

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

TA关注的人

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