OpenCV-混淆了不同函数的位深度要求
OpenCV - confusion over bit depth requirements of different functions
我发现自己在C++opencv代码中做了很多convertTo()调用。这有点令人困惑,在收到错误消息之前,我不确定何时需要转换图像的比特深度。
例如,我有一个表示16U图像的Mat。然后我尝试调用matchTemplate(),得到一个断言错误,它需要8U或32F。为什么模板匹配不能在16U上工作?当我显示图像时也会出现类似的问题(尽管位深度限制在显示图像的情况下更有意义)。我发现自己在处理convertTo()和缩放因子等问题,试图用imshow()让图像正确显示,我希望我能更优雅地做到这一点(也许我被matlab的imagesc函数宠坏了)。
我是否遗漏了openCV对比特深度使用的基本期望?如何以更干净的方式处理opencv库函数对位深度的要求?
假设您使用的是C接口:
cvMatchTemplate(const CvArr* image, const CvArr* templ, CvArr* result,int method)
image–运行搜索的图像;应为8位或32位浮点
OpenCv中的大多数功能将使用8U(用于灰度图像)或32F(用于彩色3通道图像)。
最常见的图像类型是8U(用于彩色和灰色)。这是OpenCV的首选格式
其他格式在更具体功能的基础上得到支持。
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 我需要做一个深度复制,我是否正确使用了我的复制构造函数?
- 5000+ 深度递归时函数堆栈溢出
- C++ 中深度嵌套函数的单个捕获全部语句?
- 是否有 pybind11::array_t 的(深度)复制构造函数
- 为什么此函数中的运行时错误 C++ 深度优先搜索
- 在复制构造函数中执行深度复制
- 复制构造函数(深度复制)c++
- C++递归函数,调用当前深度
- 使用模板元编程C++中的"深度"函数柯里
- C++模板复制构造函数深度复制
- 如何跳出一些深度递归的函数并直接返回结果
- 如何在构造函数初始化列表中进行深度复制.c++
- OpenCV-混淆了不同函数的位深度要求
- 使用复制构造函数进行深度复制
- 链表深度复制构造函数
- 复制构造函数,深度复制,常量引用
- 新图的深度复制构造函数
- 动态数组,析构函数,深度复制需要帮助
- 创建一个复制构造函数,该构造函数对输入对象进行深度复制(使用数组)