mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.6 KiB
46 lines
1.6 KiB
#!/usr/bin/env python |
|
|
|
# Python 2/3 compatibility |
|
from __future__ import print_function |
|
|
|
import os, numpy |
|
import math |
|
import unittest |
|
import cv2 as cv |
|
|
|
from tests_common import NewOpenCVTests |
|
|
|
class raster_test(NewOpenCVTests): |
|
|
|
def test_loadCloud(self): |
|
fin = self.find_file("pointcloudio/orig.obj") |
|
points, normals, colors = cv.loadPointCloud(fin) |
|
|
|
if points.shape != (8, 1, 3): |
|
self.fail('point array should be 8x1x3') |
|
if normals.shape != (6, 1, 3): |
|
self.fail('normals array should be 6x1x3') |
|
if colors.shape != (8, 1, 3): |
|
self.fail('colors array should be 8x1x3') |
|
|
|
def test_loadMesh(self): |
|
fin = self.find_file("pointcloudio/orig.obj") |
|
points, indices, normals, colors, texCoords = cv.loadMesh(fin) |
|
goodShapes = [(1, 18, 3), (18, 1, 3)] |
|
errorMsg = "%s array should be 18x1x3 or 1x18x3" |
|
for a, s in [(points, 'points'), (normals, 'normals'), (colors, 'colors')]: |
|
if a.shape not in goodShapes: |
|
self.fail(errorMsg % s) |
|
|
|
if texCoords.shape not in [(1, 18, 2), (18, 1, 2)]: |
|
self.fail('texture coordinates array should be 1x18x2 or 18x1x2') |
|
if isinstance(indices, numpy.ndarray): |
|
if indices.shape not in [(1, 6, 3), (6, 1, 3)]: |
|
self.fail('indices array should be 1x6x3 or 6x1x3') |
|
elif isinstance(indices, list) or isinstance(indices, tuple): |
|
for i in indices: |
|
if len(indices) != 6 or i.shape != (1, 3): |
|
self.fail('indices array should be 1x6x3 or 6x1x3') |
|
|
|
if __name__ == '__main__': |
|
NewOpenCVTests.bootstrap()
|
|
|