自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 halcon控件HWindowControl实现鼠标画矩形

halcon的控件HWindowControl可以配合算子直接实现鼠标画矩形,画的步骤跟在halcon里画矩形是一样的。但是控件HSmartWindowControl不行,因为HSmartWindowControl自带鼠标可以自由移动图片,这和画矩形同时使用鼠标相撞。同理的,这个控件可以实现halcon所有绘画的东西,例如园、椭圆等等。

2024-07-23 17:03:04 176

原创 C#halcon图片(hobject)与opencvsharp图片mat互传

这两种文件格式其实是很少使用到的,我主要是最近有一个项目需要往图片上写字,并且保存。halcon其实是没有这种功能的,所以只能是用到opencvsharp,然后就涉及到这两种格式的互传了。因为都是在C#里面,为了追求快速简洁,我选择直接用数据的指针。我看到网上也有使用将数据拿出来数组中,再利用数组去生成,这种方法也是可行的,这里就不讨论。这里使用opencvsharp需要提前在NuGet上下载,版本随个人需求。

2024-07-23 16:36:53 193

原创 halcon使用measure_pos检测直线(使用检测规则)

函数使用measure_pos检测边缘点,里面加了计算距离的筛选规则,用规则去挑出更符合需要的点位。

2024-07-23 11:25:43 303

原创 halcon求矩形Length1或者length2所在中线的起止点

为了配合halcon卡尺的使用,我们需要先知道测量直线的起止点。这个函数就是为了求一个矩形两边的起止点使用的,可以更方便的根据矩形去变化点位,而不用手动的给起止点。

2024-07-23 10:48:02 151

原创 halcon封装求两个XLD轮廓中线的函数

这个函数是为了求两个轮廓的中线而封装的。函数具有两种模式:第一种适用于两根斜的XLD轮廓,原理就是求两根线的夹角,然后再将一根线仿射变换过去;第二种适用于两根平行的线,这种原理就是直接的求平均值。

2024-07-23 10:34:37 144

原创 halcon封装measure_pos为测量园函数

与测量直线的相同,也是为了有些时候加入自己的规则而封装。上述参数基本都是找线卡尺常规参数,只有最后这个。这个是控制卡尺找线方向的,可以直接更人性的使用。NumDistance(矩形之间间距离)RecHeight(矩形半高)RecWidth(矩形半宽),Direction(找线朝向)Threshold(灰度值)ransition(极性)Sigma(平滑系数)Select(线选择)这样,更加简单直接。

2024-07-22 18:47:03 186

原创 halcon封装measure_pos为测量直线函数

两者功能其实是差不多的,但是在有的时候筛选边缘点位的时候,会用到自己编写的规则,这个时候就需要使用measure_pos了。measure_pos为halcon测量单个矩形内边缘点的算子,将多个算子用for循环一起使用的话,就可以形成类似metrology系列的算子。这个函数整体封装的其实比较粗糙,但是一直没时间去优化,后续看有时间去优化一下。这个是控制卡尺找线方向的,可以直接更人性的使用从左往右,从右往左这样,更加简单直接。RecHeight(矩形半高)RecWidth(矩形半宽)Select(线选择)

2024-07-22 18:28:59 255

原创 halcon封装延长XLD轮廓函数

这个函数主要是用于将xld轮廓进行延长,在一些显示轮廓的地方可以 用到。

2024-07-19 16:26:10 216

原创 yolov8实例分割使用Tensorrt推理(C++Api)

yolov8的实例分割其实是在目标识别的基础上有增加一个output1,这个输出是mask的数据输出,所以推理也是在目标识别的基础上加了一些东西。这个新增的output1与yolov5的是一致的。

2024-07-19 15:02:14 995

原创 yolov8目标识别使用Tensorrt推理(C++Api)

yolov8目标识别的推理程序其实跟yolov5是大差不差的,yolov8的模型output0有一些改变,其他都是一样的。

2024-07-19 14:33:05 683

原创 yolov5-7.0实例分割使用Tensorrt推理(C++Api)

yolov5的实例分割其实是在目标识别的基础上有增加一个output1,这个输出是mask的数据输出,所以推理也是在目标识别的基础上加了一些东西。

2024-07-19 13:32:55 229

原创 yolov5-7.0目标识别使用Tensorrt推理(C++Api)

程序里主要有logging.h和utils.h两个基础的头文件,还有含推理程序的yolo.hpp,我将主要的推理程序都封装在一个类里面了,后续需要使用时直接new一个就可以直接使用了。我们使用 Netron打开对应onnx模型,可以看到images和output0参数与模型一一对应,一般我们训练自己的模型都会修改CLASSES,根据自己参数对应修改即可。我自己通常使用C#编写上位机程序,所以一般都是将C++封装成DLL使用。测试使用的话直接new一个,然后使用里面的函数即可,下面给出例子。

2024-07-19 11:20:37 319

原创 halcon控件HSmartWindowControl使用(显示图片、鼠标放大缩小)

平常使用C#和halcon进行联合开发,一定会有要显示图片的地方,halcon显示图片的控件有两个HWindowControl和HSmartWindowControl。HWindowControl控件一直都有,而HSmartWindowControl是在halcon18之后才有的,个人觉得HSmartWindowControl会更加方便,更加好用。

2024-07-18 14:56:18 450

原创 yolov5的pt模型转onnx模型,onnx模型转engine模型

ONNX(Open Neural Network Exchange)是一种用于表示深度学习模型的开放标准,它允许不同的深度学习框架和工具之间进行模型交换。ONNX模型具有跨平台的兼容性,可以在不同的硬件和软件上运行,从而提高了模型的部署效率和可移植性。开放性:ONNX是一个开放的标准,由多家技术公司共同维护和发展,确保了模型的广泛兼容性和未来的发展潜力。跨平台兼容性:ONNX模型可以在不同的操作系统和硬件上运行,包括CPU、GPU等,这使得模型部署更加灵活。

2024-07-18 14:17:12 720

原创 深度学习环境配置CUDA、cuDNN、Tensorrt及Anaconda虚拟环境

深度学习环境的配置主要包括了CUDA、cuDNN、Tensorrt,这3个主要是配置电脑的运行环境。跑深度学习框架(例如yolov5)还会需要创建虚拟环境,使用Anaconda配置。下面一一介绍配置。个人目前配置版本为CUDA11.6,cuDNN8.4.1.50,Tensorrt8.4.1.5。

2024-06-28 18:38:42 1418

原创 C#bitmap图像转halcon的hobject图像

方法经过测试有一些问题,这种方法并不是所有的图片都通用,一些图片生成出来后会变成斜的。查找BitmapData类介绍,其中的有一个属性是Stride,也就是扫描一行的字节数,它是4的倍数,因此在行的字节数不满足这个条件时,会对行进行补充。所以说如果按照这个顺序来赋值内存的话,对于宽度不是4倍数的图片来说,不仅会丢失信息,还会造成图片的扭曲,并产生一个黑线。但是通过观察图片可以看出一些规律,就是图片的斜对角有一根很明显的切割线,图片也可以看出是图片的每一行后面都多了一个像素,一直累计导致现在这个样子。

2024-06-27 16:16:11 513 1

转载 C#halcon的hobject图片转C#bitmap图像

所以我想是不是可以绕远路,先将hobject的数据转为byte数组,再通过byte数组去生成bitmap图像,经过寻找一些方法的测试,所有8位的图片都可以正常转换。1、byte数组存放的是图像每个像素的灰度值,byte类型正好是从0~255,存放8bit灰度图像的时候,一个数组元素就是一个像素的灰度值。3、Bitmap类虽然提供了GetPixel()、SetPixel()这样的方法,但我们绝对不能用这两个方法来进行大规模的像素读写,因为它们的性能实在很囧;图像可以直接通过给指针的形式生成,比较方便。

2024-06-27 15:23:38 148

原创 C#bitmap图片传入C++opencv图片(Mat)

bitmap的PixelFormat.Format24bppRgb时对应的opencv是CV_8UC3,颜色通道分别B,G,R(虽然它标示的是24bppRgb,但是在opencv里面用cv::split出来看就知道了它是B,G,R的),PixelFormat.Format32bppPArgb对应CV_8UC4,Format8bppIndexed对应CV_8UC1,一般只要opencv的Mat类的stride和C#中bitmap图的stride对应上就可以正确解析。

2024-06-26 21:23:46 210

原创 C++opencv图片(mat)传入C#halcon图片(hobject)

C++将OpenCV的图片传入主要是将图片信息放入uchar数组中,C#再使用byte数组读取信息,生成图片。

2024-06-25 20:34:32 220

原创 C#halcon图片(hobject)传C++opencv图片(mat)

C#传hobject图片给C++主要是将hobject的数据指针传入,C++再使用opencv读取指针生成图片,本文分别介绍RGB3通道图和单通道图片。针对RGB的两种传输方法来比较,方法2速度会更快一些。C#程序需要使用C++导出的DLL,然后使用函数将指针传入。C#程序需要使用C++导出的DLL,然后使用函数将指针传入。C#程序需要使用C++导出的DLL,然后使用函数将指针传入。

2024-06-25 17:40:11 187

TensorRTTrain

程序为使用Tensorrt转换onnx模型为engine模型,配置好环境,直接使用exe。1、输入模型地址2、选择模式

2024-07-27

空空如也

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

TA关注的人

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