近期突然需要将图像进行腐蚀处理 ,一开始没区分C++的opencv 和C# opencvsharp 这两个虽然是一样的但语言不同注意语言不同。而且我VS还没有安装C++环境导致我查询了个把小时的C++opencv ,结果显然不尽人意,然后又想我的包是opencvsharp 然后就去查opencvsharp的内容 好了 能理解了但网上都不全 要一个一个踩坑,就像一开始opencv中的内核 和opencvsharp内核写法不同又没有手册,只能盲目踩坑(只能说学习能力不够)。网上好多不全不是这里没有就是那里没有 今天小编在这里从新整理了一下也有很多不知在评论区指出
第一步去下载OpencvSharp的NuGet包 具体请参考http://t.csdn.cn/qlT8L安装环境
腐蚀:using OpenCvSharp;
Mat src, erosion_dst, dilation_dst;
int erosion_elem = 0;
int erosion_size = 1; ///腐蚀的大小
src = OpenCvSharp.Cv2.ImRead(path, OpenCvSharp.ImreadModes.Color);
erosion_dst = new OpenCvSharp.Mat();//注意目标图像变量
dilation_dst = new OpenCvSharp.Mat();/注意目标图像变量
OpenCvSharp.MorphShapes erosion_type = 0;
if (erosion_elem == 0)
{
erosion_type = OpenCvSharp.MorphShapes.Rect;//内核矩形
}
else if (erosion_elem == 1)
{
erosion_type = OpenCvSharp.MorphShapes.Cross;//内核十字架
}
else if (erosion_elem == 2)
{
erosion_type = OpenCvSharp.MorphShapes.Ellipse;//内核椭圆
}
OpenCvSharp.Mat element = OpenCvSharp.Cv2.GetStructuringElement(erosion_type,
new OpenCvSharp.Size(2 * erosion_size + 1, 2 * erosion_size + 1),
new OpenCvSharp.Point(erosion_size, erosion_size));
OpenCvSharp.Cv2.Erode(src, dilation_dst, element);//腐蚀
OpenCvSharp.Cv2.Dilate(dilation_dst, erosion_dst, element);//膨胀