
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);
}
}
}