1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-16 13:57:05 +08:00

Merge pull request #2981 from DumDereDum:kinfu_python_demo

KinFu python samples
This commit is contained in:
Artem Saratovtsev
2021-09-05 01:07:37 +03:00
committed by GitHub
parent b83d965efd
commit 78acb196bc

View File

@@ -0,0 +1,58 @@
import numpy as np
import cv2 as cv
import sys
from argparse import ArgumentParser
def get_depth_list(folder):
f = open(folder + '/depth.txt', 'r')
rgb = [folder + '/' + s for s in f.read().split() if s.endswith('.png')]
return rgb
def kinfu_demo():
parser = ArgumentParser()
parser.add_argument(
"-i", "--input", help="Required. Path to folder with a input image file", required=True, type=str)
parser.add_argument(
"-t", "--large_kinfu", help="Required. Name of KinFu type", required=False, type=str)
parser.add_argument(
"-ocl", "--use_opencl", help="Required. Flag of OpenCL use", required=False, type=int, default=1)
args = parser.parse_args()
print("Args: ", args)
cv.ocl.setUseOpenCL(args.use_opencl)
if (args.large_kinfu == None or args.large_kinfu == "0"):
params = cv.kinfu_Params.defaultParams()
kf = cv.kinfu_KinFu.create(params)
elif (args.large_kinfu == "1"):
params = cv.kinfu_Params.hashTSDFParams(False)
kf = cv.kinfu_KinFu.create(params)
else:
raise ValueError("Incorrect kinfu type name")
depth_list = get_depth_list(args.input)
for path in depth_list:
image = cv.imread(path, cv.IMREAD_ANYDEPTH)
(height, width) = image.shape
cv.imshow('input', image)
size = height, width, 4
cvt8 = np.zeros(size, dtype=np.uint8)
if not kf.update(image):
kf.reset()
else:
kf.render(cvt8)
cv.imshow('render', cvt8)
cv.pollKey()
cv.waitKey(0)
if __name__ == '__main__':
print(__doc__)
kinfu_demo()
cv.destroyAllWindows()