分享好友 行情首页 行情分类 切换频道
C#(VS2019)+VTK(SHARP)+OPENCV(SHARP)实现点云显示,图片显示,详细配置流程
2024-12-21 12:15  浏览:72

本流程可以实现vs2019下c# winform应用程序开发,通过两种类库引用方法分别实现点云与图片的加载与显示功能

由于pcl的.NET包装并不可靠,且pclsharp已经很久没有维护了(网上只有Justin Bruening封装好的sharp库,且版本较老,因此采用在vs2019下配置pcl库并实现功能,并编译生成dll文件,再生成c#可引用的.NET类库的方式,实现c#对点云的处理和显示(这里应用的原理是c#类库的两种引用方式之一,引用自定义类库(白盒引用有源码

opencv、vtk有可靠的.NET包装,并有现成的sharp库,直接引入即可(NuGet引用 (黑盒引用无源码

流程为 配置c#界面程序-->实现图片显示功能(NuGet引用opencv+vtk)-->实现点云显示功能(vs2019配置pcl实现功能、生成dll库文件、生成dll库文件、打包成c#所需类库(源码引用pcl

初次配置参考博主

1、打开vs2019,新建c#项目,选择c#窗体应用--winforms,下一步

更改项目名称、位置,框架默认,创建

2、打开form1.cs设计界面,分别放入panal用于显示点云,picturebox显示图片,两个button分别加载点云与图片

3、首先实现图片显示功能,单击选中按钮,更改名字和显示文本,分别将button1和button2的文本更改为:“加载点云”,“加载图片”,名字更改为:“loadcloud”,“loadpicture”,并ctrl s保存

4、双击加载图片按钮,以实现对其触发的操作,这里的思路是,点击按钮时,弹出文件浏览窗口,加载图片,并将其显示在picturebox控件上,这里使用opencv进行对图片的加载

5、opencv的sharp封装可以使用c#类库包含两种方法之一的黑盒引用方式,即NuGet管理,下面进行演示,右键项目解决方案-->管理NuGet程序包,在浏览里搜索opencv

6、安装OpenCvSharp4.Windows及OpenCvSharp4.Extensions组合或OpencvCvSharp4及OpenCvSharp4.Extensions及OpenCvSharp4.runtime,参考博主

这里选择第一种组合,包安装目录在本项目根目录下,无需选择与配置

若弹窗确定即可,若安装失败,请检查网络

7、安装完成后,可见引用已经有了cv sharp库,这说明我们可以引用此类库并使用其中的命名空间下的函数了

8、在类库引用处添加using OpenCvSharp;using OpenCvSharp.Extensions;引用opencvsharp类库命令,这就是c#的类库引用黑盒引用方式,即通过NuGet程序包进行管理,如需其他类库,通过此方式可以很方便的引用,且安装目录就在项目根目录下,缺点是只能引用已经封装且发布的现成类库,即“黑盒”,无法更改源码,只能使用现有方法,适合已经封装好的库,另外一种类库引用方法即白盒引用后面进行演示

9、同样的,使用上述方法,还可以对vtk进行引用,vtk的c#封装名称为activiz,同样在NuGet中搜索安装与引用

10、全部完成后,下面实现对图片的显示,在双击加载图片按钮生成的代码中,写入以下代码

 
 

更改平台为release x64(根据自己的需要,运行,发现会报错,参考博主

解决方法为,在NuGet程序包管理中安装或更新System.Drawing.Common

11、安装更新完成后再次运行,点击加载图片,选择jpg或png类型,显示成功,可见opencv配置成功,后面可以正常使用c#下的cv进行图片的显示、二值化、分割、标注等等功能

1、根据简述,pcl并无可靠的sharp版本,因此采用c#引用类库的第二种方式即白盒引用源码引用,通过vs2019创建的c++项目以对pcl进行配置及函数实现,将其编译生成dll文件,并做出c#可以白盒引用源码引用的类库。第一步,再次打开vs创建动态链接库新项目

更改名称及路径,创建(需要注意这里的名称,后面需要与这里一致

2、分别添加新建项头文件cloud.h和源文件cloud.cpp(名称任意,配置平台release x64,并配置pcl,配置pcl方法欢迎参考之前的流程链接

3、都配置好后,在cloud.h文件下添加如下内容

 

在cloud.cpp文件下添加如下内容

 

这里面只实现对pcd和ply的点云加载,如想实现其他三维点云处理功能如直通滤波、下采样、配准等等,对应实现cpp和h文件内的内容即可,其他详情如直通分割操作可参考博主

4、这种白盒引用方式的好处就是c#没有pcl的可靠包,因此可以在vs2019下实现所有的pcl功能,c#程序只做调用与显示,这样就将pcl与c#链接起来了,且由于是白盒引用,即可修改源码,因此相对更加灵活。完成后,在预处理器定义下(属性-->c++预处理器-->预处理器定义)添加NOMINMAX(否则会报错,因为pcl库中的函数模板max min与vs中的宏max冲突,运行,即可生成dll文件

5、生成的dll文件在项目x64 release(若平台配置的是release x64)文件夹下

6、接着,需要将dll转为.NET类库,再次添加或新建类库(.NET Framework)项目,更改名称路径,注意,这里的框架一定要和第一步骤里创建的c#界面程序中的框架一致,创建

7、添加引用using System.Runtime.InteropServices;(才可以使用dllimport)写入以下代码,对应刚刚dll库中的内容,一定要注意对应关系,尤其是函数名称,参数名称,对照自己的命名

 
 

8、完成后,运行,即可生成.NET类库dll文件,生成的dll文件在项目bin x64 release(若平台配置的是release x64)文件夹下

9、至此,完成了c++下pcl与c#的链接,下面到c#中引用和使用,将上述生成的两个dll文件放在一起,放入第一步建好的c#界面程序根目录下的bin release(若平台配置的是release x64)文件夹下,打开之前的c#界面项目,在解决方案下找到引用-->添加引用,点击浏览,浏览,找到.NET类库.dll文件(后面生成的那个)添加

10、添加进来后点击确定,可见引用进来成功,这就是第二种引用方式,白盒源码引用,可以修改代码,以实现c#下对应的功能,这里要注意,类名根据自己刚才创建项目时候更改的寻找对应

11、下面就可以使用库内的函数了,首先添加引用,接着到界面里双击加载点云按钮生成代码(之前实现了加载图片,现在实现加载点云

12、在按钮触发函数写入如下代码

 
 

13、运行程序,点击加载点云按钮,选择ply或pcd类型点云文件,可见加载成功

因此在c#中,可以使用这两种不同的类库引用方式,以实现对点云的显示、处理,对图像的显示、处理

    以上就是本篇文章【C#(VS2019)+VTK(SHARP)+OPENCV(SHARP)实现点云显示,图片显示,详细配置流程】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/2365.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
权威外链平台指南:助力网站排名与流量飙升297
外链建设是网站优化不可或缺的重要环节。优质外链不仅能传递权重,还能为网站带来引流,提升品牌知名度。本文将为您提供一份全面
软媒魔方电脑版(Win10)
软媒魔方电脑版(Win10)是一款全新好用的电脑优化大师,用户们可以在软媒魔方电脑版(Win10)通过简易的操作来对你的电脑进行一个全
如何找到微信
在数字化高速发展的今天,微信作为一款集社交、支付、信息获取等多功能于一体的应用,已经成为人们日常生活中不可或缺的一部分。
绿云获得PCI PA-DSS支付安全认证
近日,绿云oHotel产品获得了PA-DSS(Payment Application Data Security Standard)支付应用数据安全标准3.2版本一级认证。支付
网站快照不更新的原因是什么?
在时,大家都会主要到网站的快照,那么网站快照对于优化有哪些作用呢?下面云无限小编为大家详细介绍:通俗的说只要被搜索引擎收
百度爱采购平台的特点及优势有哪些?
爱采购是一个电商平台,提供一站式的采购服务。它为企业提供了更方便、高效的采购渠道,帮助企业降低采购成本,提高采购效率。爱
最新文艺朋友圈说说文案
最新文艺朋友圈说说文案大全(精选80句)  像座孤独的海,内心隐隐呼唤著游云的望乡人。以下这篇是关于文艺朋友圈说说文案的句
通过 Docker 搭建 Typecho 详细教程
下面以 Centos 7 为例1.1 安装 Docker 安装依赖设置yum源查看所有仓库中所有docker版本安装docker设置开机启动启动 Docker查看版
【Apple TV 4K】软件篇:有钱有时间 方能享清闲
【新人求关注~】想要用好Apple TV 4K,不仅需要有硬件上的准备,软件方面也有很多门槛等你去跨、去折腾。如果让我用一句话来形
网络综合布线考试试题及答案.pdfVIP
================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载==============网络综合布线考试试题及答案专
本企业新闻
推荐企业新闻
发表评论
0评