编辑
2025-09-30
C#
00

使用OpenCvSharp在C#中进行模板匹配是一个相对直观的方法,但对于多角度的目标匹配和多个目标匹配,这需要一些额外的步骤和细节处理。在本文中,我们将详细介绍如何使用OpenCvSharp库实现多角度模板匹配,框选匹配目标并计数。

环境准备

在开始之前,请确保你已经安装了以下工具和库:

  1. Visual Studio 或 Rider 等 C# 开发环境
  2. .NET SDK
  3. OpenCvSharp 库

你可以通过 NuGet 包管理器安装 OpenCvSharp:

Bash
Install-Package OpenCvSharp4 Install-Package OpenCvSharp4.runtime.win
编辑
2025-09-30
C#
00

笛卡尔坐标系(法语:système de coordonnées cartésiennes,英语:Cartesian coordinate system,也称直角坐标系)在数学中是一种正交坐标系,由法国数学家勒内·笛卡尔引入而得名。二维的直角坐标系是由两条相互垂直、相交于原点数线构成的。在平面内,任何一点的坐标是根据数轴上对应的点的坐标设定的。在平面内,任何一点与坐标的对应关系,类似于数轴上点与坐标的对应关系。

创建WinForms应用程序

  1. 在Visual Studio中创建一个新的Windows Forms应用程序项目。
  2. 打开主窗体(Form1)的代码文件(Form1.cs)。

处理窗体的Paint事件

在Form1类中处理Paint事件,并在该事件中使用GDI+绘图。

绘制坐标

编辑
2025-09-30
C#
00
编辑
2025-09-30
C#
00

在Windows操作系统中,应用程序可以包含许多控件窗口。了解并调试这些控件对于开发人员和系统管理员来说是非常有价值的。本文将介绍如何使用C#和Windows Forms构建一个工具,可以列出正在运行的带窗口的进程,并显示其窗口控件的详细信息,包括它们的句柄、类名和文本内容。

创建 WinForms 项目

首先,我们需要在Visual Studio中创建一个新的Windows Forms项目。

  1. 打开Visual Studio。
  2. 选择“创建新项目”。
  3. 选择“Windows 窗体应用(.NET Framework)”,然后点击“下一步”。
  4. 设置项目名称、位置并选择合适的 .NET 框架版本,最后点击“创建”。

设计用户界面

在设计界面上,我们将需要以下控件:

  • 一个 ListBox 控件,用于显示进程列表。将其命名为 btnGetInfo
  • 一个 Button 按钮,用于触发获取控件信息的操作。将其命名为 buttonGetControls,并设置文本为“获取控件信息”。
  • 一个 TextBox 控件,用于显示控件的详细信息。将其命名为 txtMsg,并设置 Multiline 属性为 true

用户界面布局

image.png

编辑
2025-09-30
C#
00

RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。RabbitMQ与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。

image.png

RabbitMQ的交换机类型共有四种

直连型交换机背后的路由算法很简单——消息会传送给绑定键与消息的路由键完全匹配的那个队列。 我们用直连交换机取代了只会无脑广播的扇形交换机,并且具备了选择性接收消息的能力。

image.png

这种配置下,我们可以看到有两个队列Q1、Q2绑定到了直连交换机X上。第一个队列用的是橘色(orange)绑定键,第二个有两个绑定键,其中一个绑定键是黑色(black),另一个绑定键是绿色(green)。在此设置中,发布到交换机的带有橘色(orange)路由键的消息会被路由给队列Q1。带有黑色(black)或绿色(green)路由键的消息会被路由给Q2。其他的消息则会被丢弃。

Fanout Exchange(扇型交换机)

image.png