C# emgu 高通滤波
时间: 2023-11-30 13:43:20 浏览: 242
高通滤波是一种图像增强技术,可以增强图像的高频部分,使图像更加清晰。在Emgu CV中,可以使用高斯拉普拉斯滤波器来实现高通滤波。以下是使用C# Emgu CV进行高通滤波的示例代码:
```csharp
// 读取图像
Mat image = CvInvoke.Imread("input.jpg", ImreadModes.Grayscale);
// 定义高斯拉普拉斯滤波器
Mat kernel = new Mat(3, 3, DepthType.Cv32F, new float[] { 0, -1, 0, -1, 5, -1, 0, -1, 0 });
// 应用滤波器
Mat result = new Mat();
CvInvoke.Filter2D(image, result, DepthType.Default, kernel, new Point(-1, -1));
// 显示结果
CvInvoke.Imshow("Result", result);
CvInvoke.WaitKey(0);```
在上面的代码中,我们首先读取了一张灰度图像,然后定义了一个3x3的高斯拉普拉斯滤波器,最后使用`Filter2D`函数将滤波器应用到图像上,并显示结果。
相关问题
C# emgu3.4.1 高通滤波
以下是C# emgu3.4.1实现高通滤波的代码示例:
```csharp
using Emgu.CV;
using Emgu.CV.Structure;
// 读取图像
Image<Bgr, byte> img = new Image<Bgr, byte>("input.jpg");
// 转换为灰度图像
Image<Gray, byte> grayImg = img.Convert<Gray, byte>();
// 高通滤波
Image<Gray, float> highPassFilter = grayImg.Convert<Gray, float>().PyrUp().PyrDown();
Image<Gray, byte> result = grayImg - highPassFilter.Convert<Gray, byte>();
// 显示结果
CvInvoke.Imshow("Result", result);
CvInvoke.WaitKey(0);```
阅读全文