自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tfarcraw的博客

分享一些工作中的点滴积累

  • 博客(16)
  • 资源 (5)
  • 收藏
  • 关注

原创 WPF 使用 VisionMaster 算法平台SDK开发

海康的visionmaster使用方便,开发效率高,但比较复杂的应用场景还是用调用SDK方式来实现,官方有WinForm的DEMO,但没找到WPF,好久不写博客了,用这个水一篇吧。长这样:这个demo开源在我的gitee:opencvsharpvisionmaster: opencvsharp 和 visionmaster 的混合编程示例大概流程:1、开发时需要引用一些dll:方案相关 VM.PlatformSDKCS.dll ...

2021-10-13 16:41:18 4434 1

原创 使用开源工具OpencvsharpHelper测试Hog + svm机器学习效果

关于OpencvsharpHelper

2021-06-11 16:10:51 1305

原创 OpenCVSharp 基于特征的图像拼接

拼接有多个意思,有的只是简单的两个图片怼成一张图,比如这样:怼成这样:OpenCVSharp 有这样的函数,简单说一下,就不上完整代码了://上下拼接 两图像宽度必须一样Cv2.VConcat(srcImg1, srcImg2, ret); //左右拼接 两图像高度必须一样Cv2.HConcat(srcImg1, srcImg2, ret);但多数时候,我们要拼接的图像们之间是有重合的部分,比如这样:对于这种场景,OpenCV...

2021-02-21 17:53:21 3658 7

原创 OpenCVSharp 灰度投影 向量约减

OpenCVSharp的Reduce函数(向量约减)和 Halcon的gray_projections(灰度投影

2021-02-03 15:28:16 1019

原创 OpenCVSharp 分水岭算法

分水岭算法的原理大概就是在需要被区分的各个区域注入不同的颜色的水,这个水会染色它标志处的点,然后还会染色相邻的像素值差不多的点,不断漫延到像素值差异大的点停止。 public void Run() { Mat src = Cv2.ImRead("./Data/Image/lumu.jpg"); Console.WriteLine("用鼠标 标记前景,然后按键盘任意键。"); Cv2.ImSh

2021-01-31 18:24:09 860

原创 OpenCVSharp返回仿射变换后的完整图形

仿射变换后的图形如果还在原图框中显示,会有一部分显示不出来,这个函数的思路是计算原图的4个角转换后的位置,然后求最小外接矩,就得到了新图的大小,然后再看原点偏移在4个像限时的对齐方法,这里只是抛砖引玉一下,应该还有更好的方法。 /// <summary> /// 仿射变换 /// </summary> /// <param name="src">输入</par...

2021-01-30 18:57:16 601

原创 OpenCVSharp 小知识 Mat的序列化和反序列化

最近太忙,简单写写.OpenCVSharp提供了Mat的序列化和反序列化方法-----FileStorage类,下面简单演示用法, Mat src = new Mat(3, 3, MatType.CV_8UC1); Cv2.Randu(src, Scalar.All(0d), Scalar.All(255d)); Console.WriteLine("序列化:" ); Console.Write.

2020-12-15 22:16:15 1475

原创 【OpenCvSharp】求两直线的交点

原博客是opencv版本,转成opencvsharp非常方便 public static void Main() { Mat mat = new Mat(800, 800, MatType.CV_8UC3); Line2D l1 = new Line2D(100, 100, 100, 700); Line2D l2 = new Line2D(100, 700, 700, 100);.

2020-10-27 14:30:29 1603

原创 [OpenCvSHarp]小练习,计算仿射变换后的坐标

先用红点标出旋转中心的位置,用绿点标出转换前的位置变换之后,红圈圈出新的坐标改变旋转中心,角度,放大系数:结果:源码:public void Run() { Mat mat = new Mat(800, 800, MatType.CV_8UC3); //网络线 for (int i = 0; i <= 10; i++) {...

2020-10-26 23:17:57 1514

原创 OpenCVSharp 小练习 最大内接矩形

参考:https://blog.youkuaiyun.com/qq_35054151/article/details/88952728注意:这个可能不是最大内接矩形。输入图像:输出图像:代码: public void Main() { Mat src = Cv2.ImRead(FilePath.Image.Shapes, ImreadModes.AnyColor); Mat gray = new Ma..

2020-09-01 19:17:55 2872

原创 OpenCVSharp 小练习 最大内接圆

原图:代码: Mat src = Cv2.ImRead(FilePath.Image.Shapes); Mat gray = new Mat(); Mat binary = new Mat(); Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY); Cv2.Threshold(gray, binary, 1, ..

2020-09-01 12:47:17 1887

原创 OpenCVSharp 小知识 2 点(Point)

代码: Mat mat = new Mat(600, 800, MatType.CV_8UC3); Point p1 = new Point(100, 100); Point p2 = new Point(400, 400); //画点 Cv2.Circle(mat, p1, 3, Scalar.Red, -1); Cv2.Circle(mat, p2, 3,

2020-09-01 10:26:24 2785

原创 OpenCVSharp 小知识 1 Mat 的格式化输出

Mat r =new Mat(5, 3, MatType. CV_8UC3); Cv2.Randu(r, Scalar.All(0d), Scalar.All(255d)); Console.WriteLine("直接输出:"); Console.WriteLine(r); Console.WriteLine("格式化输出:默认风格"); Console...

2020-08-31 22:39:02 1291 1

原创 [开源]OpenCVSharp工具

想用opencv做图像处理,无奈不会c++,幸好有opencvsharp,在学习过程中,发现需要一个工具来方便地看它的各个函数的处理效果,就想做一个。现在做出来个雏形,实现了部分功能。从gige相机采集图像,二值化等,下面用图片简单介绍一下。左区是源图像,可以从相机采集,也可以从电脑中选择图片,也可以从图片池中选择。图片可以加入图片池,源图像和处理结果,都可以加入,起个名字,点加入,然后就可以选择为源图像,供右区处理。处理区可以通过菜单调出需要的方法页面,配置相应的参数,执行方法,得到结果。

2020-08-15 21:32:45 6778

原创 使用海康威视SDK(MVS)&Basler.Pylon读取GigE相机到opencvsharp的Mat类型

在海康威视sdk的官方示例中加入opencvsharp读取图片数据到Mat类型。网上没找到这个方面的,自己研究了一下,其实关键代码就这句:Mat image = new Mat(FrameInfo.nHeight, FrameInfo.nWidth, MatType.CV_8U, pBufForDriver);理解了数据在内存中是什么样子就好了class GrabImage {...

2019-11-14 20:09:37 7519

原创 .net core程序 Win10中编译 树莓派中运行

.net core程序 Win10中编译 树莓派中运行引用大神博客安装 .net core runtime引入 System.Device.GPIO NuGet编写程序布署传送运行感谢打赏引用大神博客张高兴的 .NET Core IoT 入门指南https://www.cnblogs.com/zhanggaoxing/p/10311697.htmldathlin 在树莓派上运行 .net ...

2019-06-04 01:41:14 844

MCGS触摸屏使用串口收发原始数据的例子

MCGS触摸屏使用串口收发原始数据的例子,用TPC7062TI测试过可以用,这个用途很多,比如可用于和扫码器通讯。

2020-06-11

PID C# 实现 源码 学习PID的好资料 介绍见我的博客

PID C# 实现 源码 学习PID的好资料 介绍见我的博客,大家可以通过调节被控目标的参数干扰调节,然后研究PID的调节。

2020-07-07

opencvsharp 助手

https://blog.youkuaiyun.com/tfarcraw/article/details/108028209?spm=1001.2014.3001.5501

2021-12-15

opencv标定工具.zip

opencv标定工具,鱼眼标定和张正友标定

2021-03-12

三菱PLC 高级技巧 ST语言实现 unix时间戳

首先,我们来思考一个问题,在三菱PLC中,你如何计算昨天的某个时间点,到现在为止过了多少秒? 可能有人会说,这个简单,我搞一个计数器,1秒增加1,不就完事了? 那么,如果中途断了几十分钟电呢? 有人可能马上会想到,系统提供了存储年月日时分秒的寄存器,我用今天的日期减去昨天的日期,今天的小时减去昨天的小时,今天的分钟…… 那么,昨天是30号,今天是1号呢?有些月昨天是31号,今天是1号。2月平年有28天,闰年有29天……有些同学可能已经开始构思一个非常复杂的功能块,你不妨先不要往下读,而是去试着自己去实现一下,然后回来再和下面的方法做一个对比,这样可能更能加深你的理解。 ...... ...... ...... 好吧,也许你已经自己试着实践了一把,下面我来说说我的方法: 如果我们能以一个固定的时间点做为锚点,用一个固定的方法,能够计算出任何时间点相对于这个锚点的时间量,那么任何两个时间点之间的量也就很容易求出。 unix时间戳就是我们要找的东西。 这个程序是用ST语言实现 unix时间戳。

2021-07-01

空空如也

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

TA关注的人

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