1.灰度图像直方图
直方图统计是图像处理中的一个非常重要的操作。VTK中实现直方图统计功能的filter是vtkImageAccumulate。其将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate输入和输出都是vtkImageData类型,因此直方图也可以看做是一幅图像;对于输入图像的像素数据类型可以是任意的,但是最大支持3个组分像素类型,而输出图像的像素数据类型为int型。一个灰度图像的直方图为一个一维图像。下面代码提供了如何计算灰度图像直方图的方法:#include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); #include <vtkSmartPointer.h> #include <vtkJPEGReader.h> #include <vtkImageAccumulate.h> #include <vtkImageData.h> #include <vtkIntArray.h> #include <vtkDataObject.h> // #include <vtkFieldData.h> //一起用 #include <vtkBarChartActor.h> #include <vtkProperty2D.h> #include <vtkTextProperty.h> #include <vtkLegendBoxActor.h> #include <vtkImageActor.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h> int main() { vtkSmartPointer<vtkJPEGReader> reader = vtkSmartPointer<vtkJPEGReader>::New(); reader->SetFileName("lena-gray.jpg"); reader->Update(); int bins = 16; int comps = 1; vtkSmartPointer<vtkImageAccumulate> histogram