EMGU.CV入门(十一、Scharr和laplacian)

22 篇文章 29 订阅
21 篇文章 0 订阅

一、效果

在这里插入图片描述
说明:之前的EMGU.CV 版本都是3.3.0.2824 ,比较古老,没有Scharr算子
而最新的4.5.3.4721 没有转换bitmap的方法
最后比较一下,之后使用的版本为4.1.0.3408

二、代码

 // 1. 加载原图
 var image1 = new Image<Bgr, byte>("bird1.png");
 var image0 = image1.Mat.Clone();
 PreviewImage1 = new WriteableBitmap(Bitmap2BitmapImage(Text(image1.Bitmap, "原图")));

 // 2. 转为灰度(当然也可以直接读取为灰度)
 Mat image2 = new Mat();
 CvInvoke.CvtColor(image0.Clone(), image2, ColorConversion.Bgr2Gray);
 PreviewImage2 = new WriteableBitmap(Bitmap2BitmapImage(Text(image2.Bitmap, "灰度")));

 // 3. 自动阈值
 Mat image3 = new Mat();
 CvInvoke.Threshold(image2, image3, 0, 255, ThresholdType.Otsu);
 PreviewImage3 = new WriteableBitmap(Bitmap2BitmapImage(Text(image3.Bitmap, "Otsu阈值")));

 // 4. sobel算子
 Mat image4 = new Mat();
 CvInvoke.Sobel(image3.Clone(), image4, DepthType.Cv64F, 1, 0, 3);
 CvInvoke.ConvertScaleAbs(image4, image4, 1.0, 0);
 Mat image5 = new Mat();
 CvInvoke.Sobel(image3.Clone(), image5, DepthType.Cv64F, 0, 1, 3);
 CvInvoke.ConvertScaleAbs(image5, image5, 1.0, 0);
 var image6 = new Mat();
 CvInvoke.AddWeighted(image4, 0.5, image5, 0.5, 0, image6);
 PreviewImage4 = new WriteableBitmap(Bitmap2BitmapImage(Text2(image6.Bitmap, "sobel算子")));

 // 5. Scharr算子
 Mat image7 = new Mat();
 Mat image9 = new Mat();
 CvInvoke.Scharr(image3.Clone(),image7,DepthType.Cv64F,1,0,3);
 CvInvoke.Scharr(image3.Clone(), image9, DepthType.Cv64F, 0, 1, 3);
 CvInvoke.ConvertScaleAbs(image7, image7, 1.0, 0);
 CvInvoke.ConvertScaleAbs(image9, image9, 1.0, 0);
 var image10 = new Mat();
 CvInvoke.AddWeighted(image7, 0.5, image9, 0.5, 0, image10);
 PreviewImage5 = new WriteableBitmap(Bitmap2BitmapImage(Text2(image10.Bitmap, "Scharr算子")));

 // 6. Laplacian算子
 Mat image8 = new Mat();
 CvInvoke.Laplacian(image3.Clone(), image8, DepthType.Cv64F);
 CvInvoke.ConvertScaleAbs(image8, image8, 1.0, 0);
 PreviewImage6 = new WriteableBitmap(Bitmap2BitmapImage(Text2(image8.Bitmap, "Laplacian算子")));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值