gpt4 book ai didi

c++ - OpenCV - 混淆不同功能的位深度要求

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:15 31 4
gpt4 key购买 nike

我发现自己在我的 C++ opencv 代码中执行了很多 convertTo() 调用。这有点令人困惑,在收到错误消息之前,我不确定何时需要转换图像的位深度。

例如,我有一个 Mat 表示一个 16U 的图像。然后我尝试调用 matchTemplate() 并得到一个断言错误,它需要 8U 或 32F。为什么模板匹配不能在 16U 上工作?当我显示图像时也会出现类似的问题(尽管位深度限制在显示图像的情况下更有意义)。我发现自己在摆弄 convertTo() 和缩放因子等尝试让图像正确显示 imshow() 并希望我能够更优雅地做到这一点(也许我被 matlab 的 imagesc 函数宠坏了)。

我是否遗漏了一些关于 openCV 对位深度使用的期望的基本信息?如何以更简洁的方式处理 opencv 库函数对位深度的要求?

最佳答案

假设您使用的是 C interface :

cvMatchTemplate(const CvArr* image, const CvArr* templ, CvArr* result,int method)

image – Image where the search is running; should be 8-bit or 32-bit floating-point

OpenCv 中的大多数函数将使用 8U(用于灰度图像)或 32F(用于彩色 3 channel 图像)。

关于c++ - OpenCV - 混淆不同功能的位深度要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898768/

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