-
-
Notifications
You must be signed in to change notification settings - Fork 949
dense: check and resize the existed dmap file to image #1024
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
| } // ImportDepthDataRaw | ||
| /*----------------------------------------------------------------*/ | ||
|
|
||
| bool MVS::GetDepthMapHeaderSize(const String& fileName, cv::Size& size) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this was a interesting exercise, but function ImportDepthDataRaw() already existing could be already used for this if you set flags param to 0, pls check
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you want you can still let this function, but instead of duplicating the code just call ImportDepthDataRaw and return the only the sizes;
more useful will be to rename it to std::optional<std::pair<cv::Size, cv::Size>> GetDepthMapHeaderSizes(const String& fileName) and return both image and depth-map sizes
| depthData.Load(depthMapName); | ||
| DepthMap& depthMap = depthData.depthMap; | ||
| cv::resize(depthMap, depthMap, data.scene.images[idx].GetSize(), 0, 0, cv::INTER_NEAREST); | ||
| depthData.Save(depthMapName); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it is ok if you use depthData to load the depth-map, but after saving it back to disk you should release it from depthData as well
and you can combine this with the next check that loads the depth-map, and if we that check is true we do not release it
| if (GetDepthMapHeaderSize(depthMapName, depthMapSize) && depthMapSize != data.scene.images[idx].GetSize()) { | ||
| depthData.Load(depthMapName); | ||
| DepthMap& depthMap = depthData.depthMap; | ||
| cv::resize(depthMap, depthMap, data.scene.images[idx].GetSize(), 0, 0, cv::INTER_NEAREST); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
resizing only the depth-map is not enough, you should resize all images inside, ex normal-map, etc
| if (OPTDENSE::nOptimize & OPTDENSE::OPTIMIZE) { | ||
| if (!depthData.Load(ComposeDepthFilePath(depthData.GetView().GetID(), "dmap"))) { | ||
| VERBOSE("error: invalid depth-map '%s'", ComposeDepthFilePath(depthData.GetView().GetID(), "dmap").c_str()); | ||
| if (!depthData.Load(depthMapName)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
to make this compatible with the above change, modify the if like:
if (depthData.IsEmpty() && !depthData.Load(depthMapName)) {
cd00cbe to
797b59e
Compare
for issue #1014 : add size check for existed depthmap and image. If their size not match, resize the depthmap to image size.