using OpenCvSharp; using OpenCvSharp.Extensions; using DlibDotNet; 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 System.Threading; namespace app { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } /// <summary> /// 顶帽黑帽 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnTopHat_Click(object sender, EventArgs e) { // 加载图像 Mat src = Cv2.ImRead(@"img\openclose.png"); Cv2.ImShow("原图", src); Mat element = new Mat(5, 5, MatType.CV_8U, new Scalar(1)); // 顶帽 // 原图 — 开运算结果。 // 可以认为是找到那些被开运算排除的小亮点。将突出比原轮廓亮的部分。 Mat top = new Mat(); Cv2.MorphologyEx(src, top, MorphTypes.TopHat, element); Cv2.ImShow("顶帽", top); // 黑帽 // 闭运算结果 — 原图。 // 可以认为是找到那些被闭运算排除的小黑点。将突出比原轮廓暗的部分。 Mat black = new Mat(); Cv2.MorphologyEx(src, black, MorphTypes.BlackHat, element); Cv2.ImShow("黑帽", black); } } }