数据集生成期间遇到的BUG及解决方案

同样的BUG以后可能也是会出现的,所以要拿小本本记下来 呜呜呜

python-dibr 跑不通 先不跑了 回头再看…

这份python版的dibr没跑通…主要它也没给 环境依赖 ,之后装 theano 的时候&之后 疯狂报错… (Keras我还不会哇)

或许我也不应该把它一起装到 workspace 环境下,看了stackoverflow之后,据说它一般是要和其他环境分开装的…

目前还不清楚是什么问题…

我只知道,我在我的vscode下 运行了 pip install theano 之后,每次运行程序终端里都会出现一堆奇奇怪怪看不懂的报错… 每次运行前 都要先通过 python -dibr.py 命令行先跑一次才可以直接 Ctrl+Alt+N 跑… 当时就裂开了… 还好还好 stackoverflow yyds:

就是这样的… Visual Studio and Anaconda Terminal Error
在这里插入图片描述

OK fine 我就知道肯定是装了什么给整坏了 我直接 pip uninstall theano 给修好了… 再见咯~


回到我自己转的matlab的dibr上来…

matlab-dibr

在这里插入图片描述

Python-OpenCV中的cv2.inpaint()函数

转过来之后,中间输出output效果仿佛看起来比matlab的差(还没有做 inpainting 前我就一直在犹豫是不是前面出了什么问题),和老师讨论完之后,决定先做完,but 调用 cv2.inpaint() 的过程中疯狂报错:
在这里插入图片描述
重点在于 生成的mask需要是 8-bit 1-channel image

看到这个回答
在这里插入图片描述
Invalid number of channels in input image: ‘VScn::contains(scn)’ where ‘scn’ is 1

于是我在前面给它加转为灰度图…但是还是不行…转灰度图 mask=cv2.cvtColor(mask,cv2.COLOR_RGB2GRAY) 也报错… ?

这个博客 对于 inpaint()中出现的问题算是很贴切了,虽然它的解决方案我没有完全明白,但大致觉得,确实是通道转换的这么一个问题,但是我并不知道为什么用 cv2.cvtColor() 会失败,只能说,我目前学得不够吧…
受以上Blog启发,顺便又回到matlab的源码,我看到其实它也有一个 写出再读入的过程 ,我就想,我能不能也这么做呢?

OpenCV:读取与写入图片 .jpg有损压缩 .png无损压缩

于是我也这么去做了一下,然后inpainting就成功了… 芜湖 但是我还不是很明白是为什么…
在这里插入图片描述
但是在这一步过程中,写出的图像是全黑的…但输出却是有值的…

关于mask图像全黑问题

因为你生成的数据是[0,1]的,所以你需要给它化回到 0~255内,才能够正常保存哦~

参考:使用cv2.imwrite保存的图像是全黑的

扩展阅读:

8-Bit vs 16-Bit Images
Channels & colors
OpenCV-Python 彩色图像转灰度图
python:图片的float类型和uint8类型


关于Deep Homo Estimation

源码:mazenmel/Deep-homography-estimation-Pytorch

猜你喜欢

转载自blog.csdn.net/Nismilesucc/article/details/121282123