gpt4 book ai didi

c++ - itk OtsuMultipleThresholdsImageFilter 不处理

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:55 24 4
gpt4 key购买 nike

我正在尝试在项目中使用 ITK 的 OtsuMultipleThresholdsImageFilter 过滤器,但我没有输出。

我的目标是在 OpenCV 和 ITK 之间建立一个简单的接口(interface)。为了将我的数据从 OpenCV 的 Mat 容器转换为 itk::Image,我使用 ITK 的 OpenCV 桥,我可以检查数据是否正确发送到 ITK。多亏了 QuickView,我什至能够显示。

但是当我设置受 this 启发的过滤器时例如,方法 GetThresholds() 返回的对象为空。

这是我写的代码:

   typedef itk::Image<uchar,2> image_type;
typedef itk::OtsuMultipleThresholdsImageFilter<image_type, image_type> filter_type;

image_type::Pointer img = itk::OpenCVImageBridge::CVMatToITKImage<image_type>(src);

image_type::SizeType size = img->GetLargestPossibleRegion().GetSize();

filter_type::Pointer filter = filter_type::New();


filter->SetInput(img);

filter->SetNumberOfHistogramBins(256);
filter->SetNumberOfThresholds(K);

filter_type::ThresholdVectorType tmp = filter->GetThresholds();

std::cout<<"CHECK: "<<tmp.size()<<std::endl;

src 是 OpenCV 的 CV_8U(C1) 类型的 Mat。

最佳答案

使用 ITK 的一个基本概念是它是一个管道架构。您必须连接输入和输出,然后更新管道。

您已连接管道但尚未执行。您必须调用 filter->Update()

请阅读 ITK 软件指南以了解 ITK 的基础知识: https://itk.org/ItkSoftwareGuide.pdf

关于c++ - itk OtsuMultipleThresholdsImageFilter 不处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com