1.梯度算子提取图像边缘
图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法,如分水岭算法,通常是分割原图的梯度图像,梯度实际上也是反应的图像边缘信息。图像边缘一般常用图像一阶导数和二阶导数来检测。
梯度算子对应于图像一阶导数。图像一阶导数计算一般是通过差分运算来近似的。VTK中可以使用vtkImageGradient计算图像梯度。注意图像梯度是一个向量,具有方向和大小。因此vtkImageGradient的计算结果是一个梯度场,也就是每个像素值都是一个梯度向量。显示梯度图像时需要计算每个像素点的梯度大小,即模值。下面代码如何利用VTK怎么计算图像梯度:
#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); #include <vtkSmartPointer.h> #include <vtkJPEGReader.h> #include <vtkImageGradient.h> #include <vtkImageMagnitude.h> #include <vtkImageData.h> #include <vtkImageShiftScale.h> #include <vtkImageAct