写作原因:软件开发从最初的简单数据处理操作到现在更多的是对图像数据的处理操作,c++的opencv很好用,c#下没法直接使用它,如果想调用opencv,需要将其先编译生成dll再使用,但是OpencvSharp对其做了很好的封装,可以像c++下使用opencv一样通过c#操作opencv的函数。现记录下OpencvSharp 的图片简单操作,如有不对的地方,请多多指教。
一、安装
vs下通过Nuget直接安装下面两个即可
二、代码
代码里面具体的函数可以通过F12看其参数和实现
#region 220108 komla mat2video
//读取图片,获取需要参数
string imgPath = @"F:\test.jpg";
string savePath = @"F:\out.png";
//读取图片
Mat SourceMat = Cv2.ImRead(imgPath);//方法1
//Mat SourceMat = new Mat(imgPath, ImreadModes.AnyColor);//方法2
if (SourceMat == null)
{
Console.WriteLine("图片加载失败"); ;
return;
}
//创建显示框并显示图片(自动图片大小的)
Window window = new Window("souece", SourceMat);
//创建图像保存容器
Mat grayMat = new Mat();
Cv2.CvtColor(SourceMat, grayMat, ColorConversionCodes.BGR2GRAY);
window = new Window("grayMat", grayMat);
//保存图像,会返回一个bool值
Cv2.ImWrite(savePath, grayMat);
Cv2.WaitKey(0);
#endregion
三、结果
代码中对原始图像进行灰度化,和预期的一样。
其他的功能再慢慢研究。