{
using (var dst = new Mat())//复制以后处理
{
//设置原图变换顶点
List< Point2f> AffinePoints0 =new List<Point2f>() { new Point2f(100, 50), new Point2f(100, 390), new Point2f(600, 50) };
//设置目标图像变换顶点
List<Point2f> AffinePoints1 = new List<Point2f>() { new Point2f(200, 100), new Point2f(200, 330), new Point2f(500, 50) };
//计算变换矩阵
Mat Trans =Cv2.GetAffineTransform(AffinePoints0, AffinePoints1);
//矩阵仿射变换
Cv2.WarpAffine(src, dst, Trans,new OpenCvSharp.Size() { Height= src.Cols, Width= src.Rows });
var mem = dst.ToMemoryStream();
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = mem;
bmp.EndInit();
imgOutput.Source = bmp;
}
}
效果图如下:
美颜磨皮 双边滤波
代码如下:
using (var src = new Mat(@"..\..\Images\ocv02.jpg", ImreadModes.AnyDepth | ImreadModes.AnyColor))
{
using (var dst = new Mat())//复制以后处理
{
Cv2.BilateralFilter(src, dst, 15, 35d, 35d);
var mem = dst.ToMemoryStream();
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = mem;
bmp.EndInit();
imgOutput.Source = bmp;
}
}
效果图如下:
----------------------------------------------------------------------------------------------------
大家可以看到,图片中有很多OpenCV的特效处理,而文章中只是介绍了几个,这是因为其他处理和文章中的特效处理的方法大同小异,所以就只列举了这几个。
有兴趣的朋友可以自行下载代码学习。
----------------------------------------------------------------------------------------------------
到此C#调用OpenCV开发简易版美图工具就讲完了。
代码已经传到Github上了,欢迎大家下载。
Github地址:https://github.com/kiba518/WpfOpenCV
----------------------------------------------------------------------------------------------------
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!
https://www.cnblogs.com/kiba/p/11321438.html