1 形态学其他操作
形态学操作一般针对灰度图
开运算:
闭运算和形态学梯度:
顶帽:
黑帽:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.CvEnum;
using Emgu.Util;
using System.Drawing;
namespace Lesson16
{
class Program
{
static void Main(string[] args)
{
Mat srcImg = CvInvoke.Imread("1.png", ImreadModes.Grayscale);
CvInvoke.Imshow("src", srcImg);
Mat dstImg = new Mat();
Mat element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));
//CvInvoke.MorphologyEx(srcImg, dstImg, MorphOp.Open, element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar());
//CvInvoke.MorphologyEx(srcImg, dstImg, MorphOp.Close, element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar());
//CvInvoke.MorphologyEx(srcImg, dstImg, MorphOp.Gradient, element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar());
//CvInvoke.MorphologyEx(srcImg, dstImg, MorphOp.Tophat, element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar());
CvInvoke.MorphologyEx(srcImg, dstImg, MorphOp.Blackhat, element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar());
CvInvoke.Imshow("result", dstImg);
CvInvoke.WaitKey(0);
}
}
}