使用 ITK 实现图像双边滤波
在数字图像处理中,双边滤波是一种常用的平滑滤波方法。与高斯滤波相比,双边滤波可以保留图像边缘信息,因此在边缘保留、去噪等方面有着更好的效果。本文将介绍如何使用 ITK 库实现图像双边滤波。
ITK(Insight Toolkit)是一个开源的计算机视觉和图像分析库,提供了许多常用的图像处理算法和工具。在本文中,我们将使用 ITK 的双边滤波算法来对一张测试图像进行处理。
首先,让我们加载需要处理的图像。这里我们使用 ITK 中自带的 lena.png 测试图像。
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include "itkBilateralImageFilter.h"
int main(int argc, char *argv[])
{
using InputPixelType = unsigned char;
using InputImageType = itk::Image<InputPixelType, 2>;
using ReaderType = itk::ImageFileReader<InputImageType>;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName("lena.png");
try
{
reader->Update();
}
catch (itk::ExceptionO