什么是GOCW
? ? ?为了解决在Csharp下编写OpenCV程序的问题,实现高效可用方法GreenOpenCsharpWrapper(GOCW)。通过这种方法,能够分离界面和算法业务,高效率完成算法调用,非常方便进行维护。在多年项目实践中不断总结提炼出来的一点东西。GOCW的发布地址
GOCW特点
- 分离界面、算法
- 图像数据通过内存传值,高效率算法调用
- 编写C++语法程序,方便维护
- 在C#中可以通过CLR方式引用,提供函数级别接口
- 开放源代码
OpenCVSharp
? ? ?OpenCVSharp是一名日本工程师开发,项目地址。其是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用友好(基本上相当于BSD)。
安装方法
第一种:下载OpenCvSharp4安装包 github网址: https://github.com/shimat/opencvsharp releases网址:https://github.com/shimat/opencvsharp/releases ? ?? 第二种:C# 项目中,【引用】-【管理NuGet程序包】- 搜索 OpenCvSharp //OpenCvSharp.runtime.win 可不装 //OpenCvSharp.Windows 可不装
using OpenCvSharp;
using OpenCvSharp.Extensions;
//图像读取以及显示
Mat bk1;
bk1= Cv2.ImRead("D:\\Csharp\\OpenCVsharpExample\\1.jpg", ImreadModes.Color);
Cv2.NamedWindow("Houzi", WindowMode.AutoSize); //创建名字为Houzi的窗体
Cv2.ImShow("Houzi",bk1); //在Houzi 窗体上显示
Cv2.WaitKey(0);
或者
?代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;
using OpenCvSharp.Extensions;
namespace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Mat srcImage = new Mat(new OpenCvSharp.Size(200, 200),MatType.CV_8UC3,Scalar.All(0));
Cv2.Circle(srcImage,100,100,80,new Scalar(255,0,0),20);
Cv2.Circle(srcImage, 100, 100, 60, new Scalar(0, 255, 0), 20);
Cv2.Circle(srcImage, 100, 100, 20, new Scalar(0, 0, 255), 20);
Bitmap bitmap = BitmapConverter.ToBitmap(srcImage);
pictureBox1.Image = bitmap;
}
}
}
|