OpenCVSharp 4.5 跑一遍OpenCV官方教程(全为手敲代码,如有雷同都是我的错)
构造自己的图像滤波器
OpenCV教程链接:https://docs.opencv.org/4.5.0/d4/dbd/tutorial_filter_2d.html
核心函数: filter2D()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp;
namespace ConsoleApp1
{
class tutorial11 : ITutorial
{
public void Run()
{
// Declare variables
Mat src, dst;
Mat kernel;
Point anchor;
double delta;
int ddepth;
int kernel_size;
const string window_name = "filter2D Demo";
const string imageName = "I:\\csharp\\images\\lena.jpg";
// Loads an image
src = Cv2.ImRead(imageName, ImreadModes.Color); // Load an image
if (src.Empty())
{
Console.WriteLine(" Error opening image\n");
return;
}
// Initialize arguments for the filter
anchor = new Point(-1, -1);
delta = 0;
ddepth = -1;
// Loop - Will filter the image with different kernel sizes each 0.5 seconds
int ind = 0;
dst = new Mat();
for (; ; )
{
// Update kernel size for a normalized box filter
kernel_size = 3 + 2 * (ind % 5);
kernel = Mat.Ones(MatType.CV_32F, kernel_size) / (float)(kernel_size * kernel_size);
// Apply filter
Cv2.Filter2D(src, dst, ddepth, kernel, anchor, delta, BorderTypes.Default);
Cv2.ImShow(window_name, dst);
char c = (char)Cv2.WaitKey(500);
// Press 'ESC' to exit the program
if (c == 27)
{ break; }
ind++;
}
}
}
}