github.com/Hanson0910/MNNSuperGlue
superglue实现的c++版本中,我想让图像大小还是原图,而不是改为640*480,注释掉resize函数后会报错,请问有什么办法解决吗?可以修改mnn文件来实现吗?怎么修改?谢谢!
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
特征匹配superglue修改图像大小
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
21条回答 默认 最新
关注
获得0.30元问题酬金 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题:如何在superglue实现的c++版本中让图像大小保持原图而不改为640*480,注释掉resize函数后会报错,有什么解决方法?可以修改mnn文件来实现吗?怎么修改? 解答: 在MNNSuperGlue的c++版本中,图像大小被resize为了640*480的大小,这是因为模型在训练时的输入大小为640*480。如果想让图像大小保持原有大小,有两个方法可以解决。 方法一:更改SuperGlue.cpp文件中resize函数的代码 可以在SuperGlue.cpp文件中的resize函数中增加一些判断语句,如果输入图像大小与640*480相同,则直接返回不做任何处理。代码示例如下:void resize(cv::Mat& img, int target_width, int target_height) { if (img.cols == target_width && img.rows == target_height) { // Return if the image size is already the target size return; } // Resize image to target size cv::resize(img, img, cv::Size(target_width, target_height)); }
方法二:修改模型的输入大小 可以通过修改模型的输入大小来适应原有的图像大小。首先需要打开mnn文件,在文件中搜索"input_1",找到输入层的部分。可以看到如下所示的代码:
{ "name":"input_1", "shape":[1,480,640,3], "dtype":0, "data_index":0 },
其中,shape表示输入层的形状,它的值为[1,480,640,3],表示输入数据的形状为[batch_size, height, width, channel]。可以修改其中的height和width,使它们与原有图像的大小相同。修改之后的代码片段如下:
{ "name":"input_1", "shape":[1,height,width,3], "dtype":0, "data_index":0 },
其中,height和width分别表示原有图像的高度和宽度。 注意:修改mnn文件时,需要对文件结构有一定的了解,同时需要保证修改后的文件与训练时使用的模型相对应。 以上就是这个问题的解答。如果您在使用MNNSuperGlue时遇到了其他问题,可以在GitHub上提出Issue,或者在社区中提问求助。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求一个C# sm4 加密解密的代码
- ¥20 centos7下载mysql提示DNS解析异常
- ¥20 vx转账功能对方不能领取
- ¥15 vue2+codemirror 运行后页面光标太大了
- ¥15 pdfjs库如何在前端实现打印、旋转等功能
- ¥15 combobox数据绑定问题
- ¥15 maven打包时,为什么有的依赖打不进去包
- ¥15 求复现机器学习文章一篇
- ¥15 爬虫抓取数据|解析视频文本内容(相关搜索:自动化)
- ¥15 combobox绑定值改变的问题