matlab - MATLAB - 在 uint16 图像中未检测到 SURF 特征
问题描述
我正在使用 SURF 功能进行图像配准。我有类型的图像uint16
。
pts1 = detectSURFFeatures(image)
当我在图像上使用上述函数时uint16
,该函数返回 0 个 SURF 点。作为一种解决方法,我曾经将图像转换为uint8
,之后该函数返回大量检测到的 SURF 点。因此,该功能适用于uint8
图像,但不适用于uint16
.
请注意,该函数不会显示任何错误。它执行成功,但SURFPoints object
返回的 SURFPoints 为 0。
为什么会这样?上述函数的文档说图像可以是single, double, uint8, uint16, int16 and logical
. 那么为什么该功能不适用于uint16
我正在使用的图像?
我通过将图像转换为double
数据类型进行了实验。它没有用。它仅在我将图像转换为uint8
.
抱歉,我不能分享这些图片,因为它们是机密数据,但是这里有人遇到过类似的问题吗?
我本可以继续转换为uint8
,但这带来了一些其他问题,因此我想知道基本问题的解决方案。
我正在使用 MATLAB 2017。
解决方案
推荐阅读
- java - 在android中拍照后如何修复我的应用程序崩溃
- typescript - TS 编译器无法识别导入的类
- python - 根据日期在python中合并不同长度的数据帧
- c++ - 读取 QDomElement 的原始值
- oracle - 如何通过 sqlplus 假脱机解释 Oracle 的结果?
- python - 将带有反斜杠的stdin字符串存储到变量中
- r - r - 如何在 dabestr 中创建用于绘图的循环?
- groovy - 如何将 Base64 字符串解码为 png/jpg
- java - Spring Boot:尝试读取资源文件夹中的目录内容从 jar 读取时会产生 FileNotFoundException
- list - Pyspark:如何遍历包含列表元素的数据框列?