【问题标题】:Visp library - how to resize imageVisp 库 - 如何调整图像大小
【发布时间】:2018-07-22 11:46:57
【问题描述】:

我正在使用 Visp 计算机视觉库,但现在遇到了问题。我想调整我的图像大小,然后在窗口中显示它。我使用功能调整大小,但我得到一些损坏的图像。这是我的代码:

vpImageIo::read(I,"test.jpg");
vpDisplayGDI d(I);
vpDisplay::setTitle(I, "My image");

I.resize(10,10);
vpDisplay::display(I);
vpDisplay::flush(I);

也许有人过去遇到过同样的问题并解决它。

【问题讨论】:

    标签: c++ vision


    【解决方案1】:

    代码:

    I.resize(10,10);
    

    只会改变图像的尺寸。

    要调整图像大小,您必须使用vpImageTools::resize()。请注意,该功能无法就地工作(源图像和目标图像必须不同)。

    你想要的应该是这样的:

      vpImage<vpRGBa> I_src, I;
      vpImageIo::read(I_src, "test.jpg");
      vpImageTools::resize(I_src, I, I_src.getWidth()/2, I_src.getHeight()/2);
    
      vpDisplayGDI d(I);
      vpDisplay::setTitle(I, "My image");
    
      vpDisplay::display(I);
      vpDisplay::flush(I);
      vpDisplay::getClick(I);
    

    【讨论】:

    • 好的,这样会更好。我的意思是我没有在我的窗口中看到损坏的图像。但现在我有全白图像。
    • 尝试使用绝对图像路径或尝试使用其他图像。您的代码中的图像类型是什么?你在用vpImage&lt;vpRGBa&gt;吗?
    • 是的,我正在使用 vpImage。当我显示原始图像时,它显示正确的图像,所以这可能不是图像路径的问题。
    • 好的,我解决了这个问题。显示后我没有刷新图像,即使它在我上面的代码中。所以它总是显示白色背景。当我添加 vpDisplay::flush(I) 一切正常。
    猜你喜欢
    • 2010-09-11
    • 2010-11-27
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多