Git Product home page Git Product logo

omnicv-lib's People

Contributors

engnadeau avatar kaustubh-sadekar avatar nnadeau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

omnicv-lib's Issues

Duplicate code

OmniCV-Lib/omnicv/utils.hpp and OmniCV-Lib/ros_files/src/utils.hpp, ros_files/src/imgMap.cpp and omnicv/imgMap.cpp are basically identical. Why? The whole point of a library is to code once and then share. The C++ module should be imported into the ROS packages.

cc openjournals/joss-reviews#2533

Automated CI

There is currently no automated testing and deployment of the codebase. For this to be considered, a CI/CD setup (e.g., GitHub Actions) should be created that tests PRs, creates releases, and deploys to PyPI

cc openjournals/joss-reviews#2533

Remove all commented code

Related to #13, commented code shouldn't exist in the repo

e.g. in omnicv/omnicv.py:

        # print(self.fmin)
        if np.real(self.fmin) <= 0:
            self.fmin = np.imag(self.fmin)

        # print(self.f)
        # print(self.fmin)

        mx = (x - self.Cx) / self.f
        my = (y - self.Cy) / self.f

cc openjournals/joss-reviews#2533

No instructions or explicit dependency for OpenCV

The README doesn't explicitly specific OpenCV as a dependency for the project. Running cmake will result in the following error:

CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:8 (find_package):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/home/nicholas/git/OmniCV-Lib/build/CMakeFiles/CMakeOutput.log".

The README should explain the dependencies required and where/how to get them

cc openjournals/joss-reviews#2533

Python requirements and installation instructions

  • The python requirements are currently fixed (i.e., ==)
  • Packages typically specify minimum requirements, else a pip install will have conflicts with the globally installed packages
  • Moreover, the installation instructions should also include notes about installing this package into a virtualenv (e.g., using pipenv or poetry). This is the ideal method for scientific research, as it freezes the requirements and isolates the environment

cc openjournals/joss-reviews#2533

Split C++ and Python code

The C++ and Python code is currently lumped into a single subfolder. Ideally, these should be in two separate subfolders for "separation of concerns", cleanliness, and maintainability. I'd suggestion omnicv_py and omnicv_cpp

cc openjournals/joss-reviews#2533

Code formatting should be enforced

As noted in #10, the Python code didn't follow formatting best practices. black (or another formatting tool) should be enforced through a Makefile command (e.g., make format) and CI.

>>> black .
reformatted /home/nicholas/git/OmniCV-Lib/setup.py
reformatted /home/nicholas/git/OmniCV-Lib/applications/set_fisheye_params_gui.py
reformatted /home/nicholas/git/OmniCV-Lib/tests/test_.py
reformatted /home/nicholas/git/OmniCV-Lib/omnicv/omnicv.py
All done! ✨ 🍰 ✨
4 files reformatted, 10 files left unchanged.

cc openjournals/joss-reviews#2533

Building and testing are two separate steps

Currently, the Makefile build commands (e.g., build-py) calls the testing ($(MAKE) test-py) at the end of the build script. Testing and building should be two separate steps.

Moreover, if you want to make a command that both builds and test (for convenience, but this shouldn't be a primary entrypoint), then Makefiles allow for dependent actions, e.g.:

build-py:
	............

test-py:
	............

build-test: build-py test-py
	............

In the above, build-test will run build-py and test-py before its own commands

cc openjournals/joss-reviews#2533

equirect2Fisheye

Wondering if this is the intended behavior. In equirect2Fisheye the output size simply adds more black space around the image. So that when I input a large output size, I can only see the fisheye image as a very small circle in the center of a black image.

Deprecated Numpy Types Cause Errors

On the latest python/numpy (Python 3.12.4) the numpy type aliases for float and bool are throwing errors. I was able to get things working by going in an manually changing this, but it would be nice if pip install worked out of the box. I saw that someone has already made a pull request for this that seems to cover this issue - it just needs to be merged. I wanted to flag the issue here to give the issue some visibility to the maintainers.

Question

Thank you very much for the nice library,
Is it possible to generate training data from panoramas using OpenCV fisheye or radial models with ([K1, K2, P1,P2,k3]) distortion paramètres?

Shebang vs instructions

The README instructions call for bash test.sh but the shebang in test.sh calls for sh. These are not the same. Moreover, calling bash on a file isn't standard practice. Rather the permissions should be updated so that we call the file like this: ./test.sh (see #7 )

cc openjournals/joss-reviews#2533

Simplify entrypoint

When getting started with the repo, the two primary entrypoints are "building the code" and "running examples".

While a skilled developer will have no problem building with cmake, running chmod +x tests/test.sh, and understanding what is needed to run the examples, these are an extra impedance for someone new to the repo.

I'd recommend using a Makefile as the entrypoint for building, running tests, etc. The READMEs will need to be updated as well.

cc openjournals/joss-reviews#2533

Error in Fisheye2Equirectangular Conversion

The function fisheyeImgConv.mapper.fisheye2equirect() seems to ignore delx and dely parameters.

I'm using applications/set_fisheye_params_gui.py without modification and the resulting equirectangular image from fisheye is incorrect. The sliders delCx and delCy don't have any effect on resulting image. fisheyeImgConv.Cx and fisheyeImgConv.Cy vary when the slider is used but these variations have no effect on resulting image.

Expected result

According to documentation delCx and delCy sliders should have effect on resulting image:

Expected

How to replicate

For the following fisheye image:

Fisheye

This is the resulting equirectangular image (for any delCx and delCy values):

Equirect

Better explain OmniCV and significance

Related to #29, the paper/paper.md needs to better explain the significance of the project.

When I review omnicv/omnicv.py and omnicv/imgMap.cpp, all I see is a collection of "X to Y" conversion functions.

  • Why would a researcher use OmniCV over their own conversion functions (researchers typically implement their own simple algorithms)?
  • What is the value proposition?

There also needs to be an example and explanation of HOW a researcher should include this repo into their project.

cc openjournals/joss-reviews#2533

Linting errors

Linting errors should be fixed and CI should be created to prevent these errors in the future.

Flake8

Running flake8 on the codebase gives many linting errors:

./Examples/fisheye2equirect.py:3:1: F401 'numpy as np' imported but unused
./Examples/fisheye2equirect.py:4:1: F401 'math' imported but unused
./Examples/fisheye2equirect.py:6:1: F401 'time' imported but unused
./Examples/fisheye2equirect.py:22:1: E266 too many leading '#' for block comment
./Examples/fisheye2equirect.py:22:80: E501 line too long (106 > 79 characters)
./Examples/fisheye2equirect.py:31:80: E501 line too long (100 > 79 characters)
./Examples/fisheye2equirect.py:33:1: W191 indentation contains tabs
./Examples/fisheye2equirect.py:46:80: E501 line too long (80 > 79 characters)
./Examples/cubemap2persp.py:3:1: F401 'numpy as np' imported but unused
./Examples/cubemap2persp.py:4:1: F401 'math' imported but unused
./Examples/cubemap2persp.py:5:1: F401 'time' imported but unused
./Examples/cubemap2persp.py:19:1: E266 too many leading '#' for block comment
./Examples/cubemap2persp.py:19:80: E501 line too long (95 > 79 characters)
./Examples/cubemap2persp.py:22:80: E501 line too long (86 > 79 characters)
./Examples/equirect2persp.py:3:1: F401 'numpy as np' imported but unused
./Examples/equirect2persp.py:4:1: F401 'math' imported but unused
./Examples/equirect2persp.py:17:1: E266 too many leading '#' for block comment
./Examples/equirect2persp.py:17:80: E501 line too long (95 > 79 characters)
./Examples/equirect2persp.py:39:80: E501 line too long (133 > 79 characters)
./Examples/equirect2cubemap.py:3:1: F401 'numpy as np' imported but unused
./Examples/equirect2cubemap.py:4:1: F401 'math' imported but unused
./Examples/equirect2cubemap.py:19:1: E266 too many leading '#' for block comment
./Examples/equirect2cubemap.py:19:80: E501 line too long (95 > 79 characters)
./Examples/equirect2fisheye.py:3:1: F401 'numpy as np' imported but unused
./Examples/equirect2fisheye.py:4:1: F401 'math' imported but unused
./Examples/equirect2fisheye.py:5:1: F401 'time' imported but unused
./Examples/equirect2fisheye.py:19:1: E266 too many leading '#' for block comment
./Examples/equirect2fisheye.py:19:80: E501 line too long (95 > 79 characters)
./Examples/equirect2fisheye.py:30:80: E501 line too long (100 > 79 characters)
./Examples/equirect2fisheye.py:37:80: E501 line too long (93 > 79 characters)
./Examples/equirect2fisheye.py:74:80: E501 line too long (80 > 79 characters)
./Examples/cubemap2equirect.py:3:1: F401 'numpy as np' imported but unused
./Examples/cubemap2equirect.py:4:1: F401 'math' imported but unused
./Examples/cubemap2equirect.py:19:1: E266 too many leading '#' for block comment
./Examples/cubemap2equirect.py:19:80: E501 line too long (95 > 79 characters)
./Examples/cubemap2equirect.py:23:80: E501 line too long (138 > 79 characters)
./omnicv/__init__.py:1:1: F403 'from omnicv.omnicv import *' used; unable to detect undefined names
./omnicv/__init__.py:1:1: F401 'omnicv.omnicv.*' imported but unused
./omnicv/omnicv.py:4:1: F401 'math' imported but unused
./omnicv/omnicv.py:5:1: F401 'time' imported but unused
./omnicv/omnicv.py:45:80: E501 line too long (87 > 79 characters)
./omnicv/omnicv.py:80:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:96:80: E501 line too long (97 > 79 characters)
./omnicv/omnicv.py:107:80: E501 line too long (81 > 79 characters)
./omnicv/omnicv.py:108:80: E501 line too long (81 > 79 characters)
./omnicv/omnicv.py:132:80: E501 line too long (84 > 79 characters)
./omnicv/omnicv.py:137:33: E203 whitespace before ':'
./omnicv/omnicv.py:138:33: E203 whitespace before ':'
./omnicv/omnicv.py:141:33: E203 whitespace before ':'
./omnicv/omnicv.py:142:33: E203 whitespace before ':'
./omnicv/omnicv.py:145:33: E203 whitespace before ':'
./omnicv/omnicv.py:146:33: E203 whitespace before ':'
./omnicv/omnicv.py:149:33: E203 whitespace before ':'
./omnicv/omnicv.py:150:33: E203 whitespace before ':'
./omnicv/omnicv.py:153:33: E203 whitespace before ':'
./omnicv/omnicv.py:154:33: E203 whitespace before ':'
./omnicv/omnicv.py:157:33: E203 whitespace before ':'
./omnicv/omnicv.py:158:33: E203 whitespace before ':'
./omnicv/omnicv.py:162:33: E203 whitespace before ':'
./omnicv/omnicv.py:163:33: E203 whitespace before ':'
./omnicv/omnicv.py:166:33: E203 whitespace before ':'
./omnicv/omnicv.py:167:33: E203 whitespace before ':'
./omnicv/omnicv.py:170:33: E203 whitespace before ':'
./omnicv/omnicv.py:171:33: E203 whitespace before ':'
./omnicv/omnicv.py:174:33: E203 whitespace before ':'
./omnicv/omnicv.py:175:33: E203 whitespace before ':'
./omnicv/omnicv.py:178:33: E203 whitespace before ':'
./omnicv/omnicv.py:179:33: E203 whitespace before ':'
./omnicv/omnicv.py:182:33: E203 whitespace before ':'
./omnicv/omnicv.py:183:33: E203 whitespace before ':'
./omnicv/omnicv.py:185:80: E501 line too long (101 > 79 characters)
./omnicv/omnicv.py:188:80: E501 line too long (86 > 79 characters)
./omnicv/omnicv.py:191:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:194:80: E501 line too long (103 > 79 characters)
./omnicv/omnicv.py:214:41: E203 whitespace before ':'
./omnicv/omnicv.py:215:50: E203 whitespace before ':'
./omnicv/omnicv.py:216:41: E203 whitespace before ':'
./omnicv/omnicv.py:217:41: E203 whitespace before ':'
./omnicv/omnicv.py:222:41: E203 whitespace before ':'
./omnicv/omnicv.py:223:41: E203 whitespace before ':'
./omnicv/omnicv.py:224:50: E203 whitespace before ':'
./omnicv/omnicv.py:225:50: E203 whitespace before ':'
./omnicv/omnicv.py:230:41: E203 whitespace before ':'
./omnicv/omnicv.py:231:41: E203 whitespace before ':'
./omnicv/omnicv.py:232:41: E203 whitespace before ':'
./omnicv/omnicv.py:233:41: E203 whitespace before ':'
./omnicv/omnicv.py:271:21: E203 whitespace before ':'
./omnicv/omnicv.py:272:25: E203 whitespace before ':'
./omnicv/omnicv.py:273:25: E203 whitespace before ':'
./omnicv/omnicv.py:274:25: E203 whitespace before ':'
./omnicv/omnicv.py:365:9: F841 local variable 'wangle' is assigned to but never used
./omnicv/omnicv.py:366:80: E501 line too long (85 > 79 characters)
./omnicv/omnicv.py:370:9: F841 local variable 'hangle' is assigned to but never used
./omnicv/omnicv.py:371:80: E501 line too long (85 > 79 characters)
./omnicv/omnicv.py:411:80: E501 line too long (108 > 79 characters)
./omnicv/omnicv.py:414:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:451:9: F841 local variable 'wangle' is assigned to but never used
./omnicv/omnicv.py:452:80: E501 line too long (87 > 79 characters)
./omnicv/omnicv.py:455:9: F841 local variable 'hangle' is assigned to but never used
./omnicv/omnicv.py:456:80: E501 line too long (87 > 79 characters)
./omnicv/omnicv.py:494:80: E501 line too long (108 > 79 characters)
./omnicv/omnicv.py:497:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:532:80: E501 line too long (85 > 79 characters)
./omnicv/omnicv.py:599:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:619:80: E501 line too long (85 > 79 characters)
./omnicv/omnicv.py:716:80: E501 line too long (93 > 79 characters)
./omnicv/omnicv.py:740:80: E501 line too long (84 > 79 characters)
./omnicv/omnicv.py:797:80: E501 line too long (82 > 79 characters)
./omnicv/omnicv.py:812:9: F841 local variable 'xref' is assigned to but never used
./omnicv/omnicv.py:813:9: F841 local variable 'yref' is assigned to but never used
./omnicv/omnicv.py:815:80: E501 line too long (93 > 79 characters)
./omnicv/omnicv.py:865:80: E501 line too long (86 > 79 characters)
./omnicv/omnicv.py:891:80: E501 line too long (93 > 79 characters)
./omnicv/omnicv.py:893:80: E501 line too long (87 > 79 characters)
./omnicv/omnicv.py:903:80: E501 line too long (88 > 79 characters)
./omnicv/omnicv.py:907:80: E501 line too long (86 > 79 characters)
./omnicv/omnicv.py:982:50: E203 whitespace before ':'
./omnicv/omnicv.py:983:59: E203 whitespace before ':'
./omnicv/omnicv.py:983:80: E501 line too long (83 > 79 characters)
./omnicv/omnicv.py:984:50: E203 whitespace before ':'
./omnicv/omnicv.py:985:50: E203 whitespace before ':'
./omnicv/omnicv.py:990:50: E203 whitespace before ':'
./omnicv/omnicv.py:991:50: E203 whitespace before ':'
./omnicv/omnicv.py:992:59: E203 whitespace before ':'
./omnicv/omnicv.py:992:80: E501 line too long (83 > 79 characters)
./omnicv/omnicv.py:993:59: E203 whitespace before ':'
./omnicv/omnicv.py:993:80: E501 line too long (83 > 79 characters)
./omnicv/omnicv.py:998:50: E203 whitespace before ':'
./omnicv/omnicv.py:999:50: E203 whitespace before ':'
./omnicv/omnicv.py:1000:50: E203 whitespace before ':'
./omnicv/omnicv.py:1001:50: E203 whitespace before ':'
./omnicv/omnicv.py:1015:80: E501 line too long (83 > 79 characters)
./omnicv/omnicv.py:1055:80: E501 line too long (83 > 79 characters)
./applications/UCM_GUI.py:3:1: F401 'numpy as np' imported but unused
./applications/UCM_GUI.py:4:1: F401 'math' imported but unused
./applications/UCM_GUI.py:5:1: F401 'time' imported but unused
./applications/set_fisheye_params_gui.py:3:1: F401 'numpy as np' imported but unused
./applications/set_fisheye_params_gui.py:4:1: F401 'math' imported but unused
./applications/set_fisheye_params_gui.py:55:80: E501 line too long (87 > 79 characters)
./applications/ViewerGUI.py:3:1: F401 'numpy as np' imported but unused
./applications/ViewerGUI.py:4:1: F401 'math' imported but unused
./applications/ViewerGUI.py:5:1: F401 'time' imported but unused
./tests/tests_visual.py:5:1: F401 'math' imported but unused
./tests/tests_visual.py:6:1: F401 'time' imported but unused
./tests/tests_visual.py:7:1: F401 'sys' imported but unused
./tests/tests_visual.py:22:80: E501 line too long (88 > 79 characters)
./tests/tests_visual.py:32:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:47:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:62:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:77:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:101:80: E501 line too long (83 > 79 characters)
./tests/tests_visual.py:117:80: E501 line too long (83 > 79 characters)
./tests/tests_visual.py:135:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:148:80: E501 line too long (82 > 79 characters)
./tests/tests_visual.py:160:80: E501 line too long (88 > 79 characters)
./tests/tests_visual.py:179:80: E501 line too long (83 > 79 characters)
./tests/tests_visual.py:198:80: E501 line too long (83 > 79 characters)
./tests/tests_visual.py:215:80: E501 line too long (88 > 79 characters)
./tests/tests_visual.py:231:80: E501 line too long (88 > 79 characters)
./tests/tests.py:4:1: F401 'numpy as np' imported but unused
./tests/tests.py:5:1: F401 'math' imported but unused
./tests/tests.py:6:1: F401 'time' imported but unused
./tests/tests.py:7:1: F401 'sys' imported but unused
./tests/tests.py:20:80: E501 line too long (88 > 79 characters)

Vulture

vulture gives the following errors:

applications/set_fisheye_params_gui.py:4: unused import 'math' (90% confidence)
applications/set_fisheye_params_gui.py:29: redundant if-condition (100% confidence)
applications/set_fisheye_params_gui.py:63: redundant if-condition (100% confidence)
applications/UCM_GUI.py:4: unused import 'math' (90% confidence)
applications/ViewerGUI.py:4: unused import 'math' (90% confidence)
Examples/cubemap2equirect.py:4: unused import 'math' (90% confidence)
Examples/cubemap2persp.py:4: unused import 'math' (90% confidence)
Examples/equirect2cubemap.py:4: unused import 'math' (90% confidence)
Examples/equirect2fisheye.py:4: unused import 'math' (90% confidence)
Examples/equirect2persp.py:4: unused import 'math' (90% confidence)
Examples/fisheye2equirect.py:4: unused import 'math' (90% confidence)
omnicv/omnicv.py:4: unused import 'math' (90% confidence)
omnicv/omnicv.py:41: unused attribute 'singleLens' (60% confidence)
omnicv/omnicv.py:365: unused variable 'wangle' (60% confidence)
omnicv/omnicv.py:370: unused variable 'hangle' (60% confidence)
omnicv/omnicv.py:451: unused variable 'wangle' (60% confidence)
omnicv/omnicv.py:455: unused variable 'hangle' (60% confidence)
omnicv/omnicv.py:961: unused method 'applyMap' (60% confidence)
tests/tests.py:5: unused import 'math' (90% confidence)
tests/tests_visual.py:5: unused import 'math' (90% confidence)

cc openjournals/joss-reviews#2533

All public functions should have docstring

If this library is to be used and maintained by the research community, documentation is paramount. Code documentation should be enforced (e.g., by a tool like pydocstyle:

>>> pydocstyle .                           
./setup.py:1 at module level:
        D100: Missing docstring in public module
./Examples/fisheye2equirect.py:1 at module level:
        D100: Missing docstring in public module
./Examples/cubemap2persp.py:1 at module level:
        D100: Missing docstring in public module
./Examples/equirect2persp.py:1 at module level:
        D100: Missing docstring in public module
./Examples/equirect2cubemap.py:1 at module level:
        D100: Missing docstring in public module
./Examples/equirect2fisheye.py:1 at module level:
        D100: Missing docstring in public module
./Examples/cubemap2equirect.py:1 at module level:
        D100: Missing docstring in public module
./omnicv/__init__.py:1 at module level:
        D104: Missing docstring in public package
./omnicv/omnicv.py:1 at module level:
        D100: Missing docstring in public module
./omnicv/omnicv.py:6 in public function `rmat`:
        D103: Missing docstring in public function
./omnicv/omnicv.py:33 in public class `fisheyeImgConv`:
        D101: Missing docstring in public class
./omnicv/omnicv.py:34 in public method `__init__`:
        D107: Missing docstring in __init__
./omnicv/omnicv.py:43 in public method `fisheye2equirect`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:119 in public method `equirect2cubemap`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:242 in public method `cubemap2equirect`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:341 in public method `eqruirect2persp`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:410 in public method `cubemap2persp`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:481 in public method `equirect2Fisheye`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:567 in public method `equirect2Fisheye_UCM`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:657 in public method `equirect2Fisheye_EUCM`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:759 in public method `equirect2Fisheye_FOV`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:823 in public method `equirect2Fisheye_DS`:
        D102: Missing docstring in public method
./omnicv/omnicv.py:914 in public method `applyMap`:
        D102: Missing docstring in public method
./applications/UCM_GUI.py:1 at module level:
        D100: Missing docstring in public module
./applications/UCM_GUI.py:20 in public function `nothing`:
        D103: Missing docstring in public function
./applications/set_fisheye_params_gui.py:1 at module level:
        D100: Missing docstring in public module
./applications/set_fisheye_params_gui.py:7 in public function `nothing`:
        D103: Missing docstring in public function
./applications/ViewerGUI.py:1 at module level:
        D100: Missing docstring in public module
./applications/ViewerGUI.py:7 in public function `nothing`:
        D103: Missing docstring in public function
./tests/srcpath.py:1 at module level:
        D100: Missing docstring in public module

cc openjournals/joss-reviews#2533

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.