- 博客(26)
- 资源 (5)
- 收藏
- 关注
原创 [开源]OpenCVSharp工具
想用opencv做图像处理,无奈不会c++,幸好有opencvsharp,在学习过程中,发现需要一个工具来方便地看它的各个函数的处理效果,就想做一个。现在做出来个雏形,实现了部分功能。从gige相机采集图像,二值化等,下面用图片简单介绍一下。左区是源图像,可以从相机采集,也可以从电脑中选择图片,也可以从图片池中选择。图片可以加入图片池,源图像和处理结果,都可以加入,起个名字,点加入,然后就可以选择为源图像,供右区处理。处理区可以通过菜单调出需要的方法页面,配置相应的参数,执行方法,得到结果。
2020-08-15 21:32:45 6172
原创 WPF 使用 VisionMaster 算法平台SDK开发
海康的visionmaster使用方便,开发效率高,但比较复杂的应用场景还是用调用SDK方式来实现,官方有WinForm的DEMO,但没找到WPF,好久不写博客了,用这个水一篇吧。长这样:这个demo开源在我的gitee:opencvsharpvisionmaster: opencvsharp 和 visionmaster 的混合编程示例大概流程:1、开发时需要引用一些dll:方案相关 VM.PlatformSDKCS.dll ...
2021-10-13 16:41:18 3183 1
原创 PaddleOCR-2.1.1集成到opencv项目,在C#中调用
一、下载这3个https://github.91chifun.workers.dev//https://github.com/PaddlePaddle/PaddleOCR/archive/refs/tags/v2.1.1.ziphttps://paddle-wheel.bj.bcebos.com/2.0.2/win-infer/mkl/cpu/paddle_inference.zipPaddleOCR/quickstart.md at release/2.0 · PaddlePaddle/Pad
2021-06-14 14:26:45 2208 6
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(七)对话窗口服务
如果你想在弹出窗口中进行一些简单的交互,tx MessageBox 足矣如果进行一些更自由的交互,或者你只是想定制弹出窗口的样式,Prism贴心地提供了对话窗口服务。
2021-06-06 17:05:22 317
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(六)MVVM
一、MVVM - 视图 与 后台逻辑 的解耦介绍MVVM是什么的文章很多,这里不再赘述,需要说明的是听到很多这样的说法:Prism就是MVVM框架,我觉得这样的说法是不对的,MVVM只是Prism框架中的一部分,是Prism解耦家族的一员。这里简单介绍一下在Prism中的一些关于MVVM相关小技巧。在Visual Studio 中有Prism Template Pack扩展,安装它之后可以更方便的帮助我们创建Prism程序模板,还会提供一些快捷代码段的支持,比如propp快速创建一个带通知...
2021-06-05 20:36:19 445
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(五)区域与导航
前面说的大多是后台逻辑的解耦,前端视图可不可以解耦呢?比如我要在某个区域内,灵活地调整显示内容,或者灵活的在不同的页面显示同一个内容,Prism能不能帮我们做到呢?当然能!Prism为我们提供了一揽子的解耦方案,当然包括视图的解耦。区域的设计就是为了视图的解耦。下面我们先简单看一下Demo中使用区域和导航的例子。第一步、在页面中创建一个区域,并为它起一个名字。第二步、通过依赖注入拿到区域管理器第三步、在模块中注册视图第四步、...
2021-05-26 13:32:02 245
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(四)事件聚合
订阅-发布模型本身就是弱耦合的——发布者不用关心有没有人订阅,订阅者不关心有没有人发布——这正契合了我们的主题。
2021-05-13 19:57:51 250
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(三)依赖注入
依赖注入设计的初衷即是解耦,依赖注入容器就像是一个什么都能装的大桶,你可以在一个模块中把一个东西丢进去,在本模块或其它模块再把它拿出来,这就为模块化编程提供了极大的方便与灵活性。Prism的许多功能都基于依赖注入容器,比如导航服务、对话窗体服务等,这是我不得不先介绍它的原因。示例中许多功能比如自动加载导航菜单、在各个窗体中共享用户信息、共享通讯对象、共享图像等都是使用依赖注入实现,这里我们介绍一下自动加载导航菜单的实现过程,希望大家通过这个简单功能,对依赖注入有个感性认识。自动加载导航菜单就是加
2021-05-11 12:53:03 654 1
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(二)模块
Prism是一个非常易用的框架,它不仅帮助我们方便地实现松耦合,就连它本身的各个知识点之间也是“松耦合”的,你不是非要等到完全清楚它的每一个知识点后才能使用它,我可以随意单独拎出一个来快速演示如何在项目中快速使用它,但一个更合理的顺序更有助于描绘它。知识的等级怎样的顺序才算是更合理呢?如果一个知识是从无到有的,能够填补一个空白,那这个知识就是高等级的,如果一个知识只是可以优化旧知识,那这个知识等级就相对较低。换一个说法,如果一个知识决定你能不能做到某事,就是高等级,如果只是能让你比原来做的更优雅
2021-05-09 19:51:18 370
原创 解耦!解耦!漫谈 XAML 应用程序开源框架 Prism(一)开篇
场景从一开始学习编程,各种教程都在碎碎念着弱耦合的事情,为什么要弱耦合呢?最重要的目的之一最大化的代码复用,设想一下,如果你经常要开发一些小程序,这些程序的部分内容略有不同,但它们都有着一些共同点,比如他们都需要有用户权限管理、日志、导航等等一系列共同内容,你如何去复用这些代码?复制粘贴大法是很多人的第一选择,但是如果你想在所有做过的程序修复同一个bug,那就会产生大量的重复劳动。弱耦合可以解决这些问题,但是我们具体应该怎么才能做到弱耦合呢?最直接的方法就是使用设计优良的框架。.
2021-04-27 22:14:04 650
原创 在C#中使用OpenCV 使用GOCW和opencvsharp,opencv和opencvsharp混合编程
看了一篇大神的文章在C#中使用OpenCV(使用GOCW)https://blog.csdn.net/jsxyhelu2015/article/details/111879116?spm=1001.2014.3001.5501讲了把opencv包装成c++/clr的方法,这样确实比使用opencvsharp多了许多优点,比如最新的opencv加入的微信扫码,opencvsharp就没有实现,用这个方法就能实现。但是小孩子才做选择,我当然全部都要!基于GOCW如果能实现opencv和opencvsh.
2021-04-09 23:52:35 1457 1
原创 OpenCVSharp 基于特征的图像拼接
拼接有多个意思,有的只是简单的两个图片怼成一张图,比如这样:怼成这样:OpenCVSharp 有这样的函数,简单说一下,就不上完整代码了://上下拼接 两图像宽度必须一样Cv2.VConcat(srcImg1, srcImg2, ret); //左右拼接 两图像高度必须一样Cv2.HConcat(srcImg1, srcImg2, ret);但多数时候,我们要拼接的图像们之间是有重合的部分,比如这样:对于这种场景,OpenCV...
2021-02-21 17:53:21 3330 7
原创 OpenCVSharp 灰度投影 向量约减
OpenCVSharp的Reduce函数(向量约减)和 Halcon的gray_projections(灰度投影
2021-02-03 15:28:16 836
原创 OpenCVSharp 分水岭算法
分水岭算法的原理大概就是在需要被区分的各个区域注入不同的颜色的水,这个水会染色它标志处的点,然后还会染色相邻的像素值差不多的点,不断漫延到像素值差异大的点停止。 public void Run() { Mat src = Cv2.ImRead("./Data/Image/lumu.jpg"); Console.WriteLine("用鼠标 标记前景,然后按键盘任意键。"); Cv2.ImSh
2021-01-31 18:24:09 783
原创 OpenCVSharp返回仿射变换后的完整图形
仿射变换后的图形如果还在原图框中显示,会有一部分显示不出来,这个函数的思路是计算原图的4个角转换后的位置,然后求最小外接矩,就得到了新图的大小,然后再看原点偏移在4个像限时的对齐方法,这里只是抛砖引玉一下,应该还有更好的方法。 /// <summary> /// 仿射变换 /// </summary> /// <param name="src">输入</par...
2021-01-30 18:57:16 541
原创 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 1316
原创 【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 1368
原创 [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 1378
原创 OpenCVSharp 小练习 最大内接矩形
参考:https://blog.csdn.net/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 2600
原创 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 1716
原创 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 2514
原创 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 1168 1
原创 使用海康威视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 6967
原创 .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 740
opencvsharp 助手
2021-12-15
三菱PLC 高级技巧 ST语言实现 unix时间戳
2021-07-01
PID C# 实现 源码 学习PID的好资料 介绍见我的博客
2020-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人