.Net AI学习笔记系列
第一章 OpenCVSharp入门学习
前言
随着AI越来越火爆,作为一个.Net程序员自然不能落伍,本系列文章是个人的AI入门学习笔记,如有错误之处,欢迎大家指正。
一、OPenCVSharp入门学习
OpenCvSharp 是一个用于 .NET 平台的开源 OpenCV 包装器,它提供了用于图像处理和计算机视觉的强大功能。
二、使用步骤
1.开发工具
VS2019+.net 4.8+OpenCvSharp4
2.引入库
Install-Package OpenCvSharp4
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;
3.示例代码
代码如下(示例):
//灰度化图片
private void btn_GrayImg_Click(object sender, EventArgs e)
{
Mat img = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)this.picBox_Sel.Image);
//转换为灰度图片
//灰度化图像的主要优点是减少了数据量,可以降低计算复杂度和内存占用
//灰度图像在某些计算机视觉任务中(如边缘检测、形状识别等)比彩色图像更容易处理
Mat grayImage = new Mat();
Cv2.CvtColor(img, grayImage, ColorConversionCodes.BGR2GRAY);
this.picBox_To.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(grayImage);
this.picBox_To.Refresh();
}
//高斯模糊
private void btn_Gaussian_Click(object sender, EventArgs e)
{
Mat image = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)this.picBox_Sel.Image);
// 高斯模糊
Mat blurredImage = new Mat();
Cv2.GaussianBlur(image, blurredImage, new OpenCvSharp.Size(5, 5), 0);
this.picBox_To.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(blurredImage);
this.picBox_To.Refresh();
}
//二值化图片
private void btn_Binary_Click(object sender, EventArgs e)
{
Mat grayImage = OpenCvSharp.Extensions.BitmapConverter.ToMat((Bitmap)this.picBox_To.Image);
//二值化
//阈值设置为127,即当像素值大于127时,将其设置为255(白色),否则设置为0(黑色)
Mat binaryImage = new Mat();
Cv2.Threshold(grayImage, binaryImage, 186, 255, ThresholdTypes.Binary);
this.picBox_To.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(binaryImage);
this.picBox_To.Refresh();
}
4.运行效果
总结
OpenCvSharp 是一个用于 .NET 平台的开源 OpenCV 包装器,它提供了用于图像处理和计算机视觉的强大功能。OpenCvSharp 集成了 OpenCV 的 DNN(深度神经网络)模块,允许开发者在 .NET 平台上使用深度学习模型进行图像分类、物体检测、语义分割等任务。这使得 OpenCvSharp 成为 AI 开发者在 .NET 环境中进行计算机视觉和机器学习任务的理想选择。所以学习OpenCvSharp 很有必要,望大家不吝指教!