Giter Club home page Giter Club logo

jsartoolkit5's Introduction

jsartoolkit5's People

Contributors

alexrobinson- avatar avin avatar carnaux avatar hakandilek avatar jensarps avatar jeromeetienne avatar kalwalt avatar kbouw avatar kig avatar neuroforge avatar nicolocarpignoli avatar nylki avatar philip-lamb avatar ralphtheninja avatar takahirox avatar thorstenbux avatar yccgabriel avatar zz85 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jsartoolkit5's Issues

error compiling jsartoolkit5 probably own environment (question)

So the issue is the following:
using emscripten 1.39.5-fastcomp I get this error...

    ports.fetch_project('libjpeg', 'https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz', 'jpeg-9c', sha512hash=HASH)
urllib2.HTTPError: HTTP Error 403: Forbidden

which is described as problem with that domain was taken down... and u need to upgrade emscript?!
here is the upstream issue
emscripten-core/emscripten#14760

using the latest emscripten... I get this error...
wasm-ld: error: unknown file type: ~/devel/jsartoolkit5/build/libar.bc
which can lead to the following issues:
emscripten-core/emscripten#13607 (comment)
emscripten-core/emscripten#14531 (comment)
emscripten-core/emscripten#15054

$ npm run build-local

> [email protected] build-local ~/devel/jsartoolkit5
> node tools/makem.js; echo Built at `date`


Warning: EMSCRIPTEN environment variable not found.
If you get a "command not found" error,
do `source <path to emsdk>/emsdk_env.sh` and try again.

Running command: emcc -I~/devel/jsartoolkit5/emscripten/artoolkit5/include -I~/devel/jsartoolkit5/build/ -I~/devel/jsartoolkit5/emscripten/ -I~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR/arLabelingSub/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARICP/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARMulti/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/Video/video.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARUtil/log.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARUtil/file_utils.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/handle.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/imageSet.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/jpeg.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/marker.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/featureMap.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/featureSet.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/surface.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/tracking.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/tracking2d.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/matching.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/matching2.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/template.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/searchPoint.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/coord.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/util.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmHandle.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmRefDataSet.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmMatching.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmResult.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmUtil.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmFopen.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/DoG_scale_invariant_detector.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gaussian_scale_space_pyramid.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gradients.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/harris.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/orientation_assignment.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/hough_similarity_voting.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/freak.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/date_time.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/logger.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/timers.cpp -Oz  -Wno-warn-absolute-paths  -s TOTAL_MEMORY=268435456  -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0  -s ALLOW_MEMORY_GROWTH=1 --bind    -D HAVE_NFT  -o ~/devel/jsartoolkit5/build/libar.bc 

stderr: ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c:279:41: warning: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-const-int-float-conversion]
        k = (int)((float )j * rand() / (RAND_MAX + 1.0F));
                                        ^~~~~~~~ ~
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/stdlib.h:82:19: note: expanded from macro 'RAND_MAX'
#define RAND_MAX (0x7fffffff)
                  ^~~~~~~~~~
1 warning generated.
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp:36:
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.h:99:14: warning: 'auto_ptr<unsigned short>' is deprecated [-Wdeprecated-declarations]
        std::auto_ptr<unsigned short> mTmp;
             ^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/memory:1155:28: note: 'auto_ptr<unsigned short>' has been explicitly marked deprecated here
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr
                           ^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config:990:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11'
#  define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED
                                      ^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config:979:48: note: expanded from macro '_LIBCPP_DEPRECATED'
#    define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
                                               ^
1 warning generated.
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp:37:
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database-inline.h:44:
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:83:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        void addImage(const Image& image, id_t id) throw(Exception);
             ^                                     ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:88:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        void addImage(const GaussianScaleSpacePyramid* pyramid, id_t id) throw(Exception);
             ^                                                           ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:93:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        void addKeyframe(keyframe_ptr_t keyframe , id_t id) throw(Exception);
             ^                                              ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:98:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        bool query(const Image& image) throw(Exception);
             ^                         ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:103:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        bool query(const GaussianScaleSpacePyramid* pyramid) throw(Exception);
             ^                                               ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:104:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
        bool query(const keyframe_t* query_keyframe) throw(Exception);
             ^                                       ~~~~~~~~~~~~~~~~
6 warnings generated.
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp:120:13: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
void Image::alloc(ImageType type,
            ^
1 warning generated.
emcc: warning: generating an executable with an object extension (.bc).  If you meant to build an object file please use `-c, `-r`, or `-shared` [-Wemcc]


Running command: emcc -I~/devel/jsartoolkit5/emscripten/artoolkit5/include -I~/devel/jsartoolkit5/build/ -I~/devel/jsartoolkit5/emscripten/ -I~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher  ~/devel/jsartoolkit5/build/libar.bc ~/devel/jsartoolkit5/emscripten/ARToolKitJS.cpp ~/devel/jsartoolkit5/emscripten/trackingMod.c ~/devel/jsartoolkit5/emscripten/trackingMod2d.c -Oz  -Wno-warn-absolute-paths  -s TOTAL_MEMORY=268435456  -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0  -s ALLOW_MEMORY_GROWTH=1 --bind  -s WASM=0  -g  -s ASSERTIONS=1  --profiling  -s ALLOW_MEMORY_GROWTH=1  -s DEMANGLE_SUPPORT=1   -D HAVE_NFT  --pre-js ~/devel/jsartoolkit5/js/artoolkit.api.js  -o ~/devel/jsartoolkit5/build/artoolkit.debug.js 

stderr: ~/devel/jsartoolkit5/emscripten/ARToolKitJS.cpp:454:22: warning: 'addNFTMarkers' has C-linkage specified, but returns incomplete type 'std::vector<int>' which could be incompatible with C [-Wreturn-type-c-linkage]
    std::vector<int> addNFTMarkers(int id, std::vector<std::string> &datasetPathnames) {
                     ^
1 warning generated.
wasm-ld: error: unknown file type: ~/devel/jsartoolkit5/build/libar.bc
emcc: error: '~/devel/emsdk/upstream/bin/wasm-ld -o ~/devel/jsartoolkit5/build/artoolkit.debug.wasm ~/devel/jsartoolkit5/build/libar.bc /tmp/emscripten_temp_f6hfgj_f/ARToolKitJS_0.o /tmp/emscripten_temp_f6hfgj_f/trackingMod_1.o /tmp/emscripten_temp_f6hfgj_f/trackingMod2d_2.o -L~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten ~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libz.a ~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libjpeg.a --whole-archive -lembind-rtti --no-whole-archive -lGL -lal -lhtml5 -lstubs-debug -lc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -ldlmalloc -lc_rt_wasm-optz -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --import-memory --export-if-defined=main --export-if-defined=emscripten_stack_get_end --export-if-defined=emscripten_stack_get_free --export-if-defined=emscripten_stack_init --export-if-defined=__cxa_demangle --export-if-defined=stackSave --export-if-defined=stackRestore --export-if-defined=stackAlloc --export-if-defined=__wasm_call_ctors --export-if-defined=fflush --export-if-defined=__errno_location --export-if-defined=malloc --export-if-defined=free --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-table -z stack-size=5242880 --initial-memory=268435456 --no-entry --max-memory=2147483648 --global-base=1024' failed (returned 1)

exec error: 1

docker is still downloading... i have slow internet here... will edit this if an error comes up

on docker:

$ docker exec emscripten npm run build-local

> [email protected] build-local /src
> node tools/makem.js; echo Built at `date`


Running command: /emsdk_portable/emscripten/sdk/emcc -I/src/emscripten/artoolkit5/include -I/src/build/ -I/src/emscripten/ -I/src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher /src/emscripten/artoolkit5/lib/SRC/AR/arLabelingSub/*.c /src/emscripten/artoolkit5/lib/SRC/AR/*.c /src/emscripten/artoolkit5/lib/SRC/ARICP/*.c /src/emscripten/artoolkit5/lib/SRC/ARMulti/*.c /src/emscripten/artoolkit5/lib/SRC/Video/video.c /src/emscripten/artoolkit5/lib/SRC/ARUtil/log.c /src/emscripten/artoolkit5/lib/SRC/ARUtil/file_utils.c /src/emscripten/artoolkit5/lib/SRC/AR2/handle.c /src/emscripten/artoolkit5/lib/SRC/AR2/imageSet.c /src/emscripten/artoolkit5/lib/SRC/AR2/jpeg.c /src/emscripten/artoolkit5/lib/SRC/AR2/marker.c /src/emscripten/artoolkit5/lib/SRC/AR2/featureMap.c /src/emscripten/artoolkit5/lib/SRC/AR2/featureSet.c /src/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c /src/emscripten/artoolkit5/lib/SRC/AR2/surface.c /src/emscripten/artoolkit5/lib/SRC/AR2/tracking.c /src/emscripten/artoolkit5/lib/SRC/AR2/tracking2d.c /src/emscripten/artoolkit5/lib/SRC/AR2/matching.c /src/emscripten/artoolkit5/lib/SRC/AR2/matching2.c /src/emscripten/artoolkit5/lib/SRC/AR2/template.c /src/emscripten/artoolkit5/lib/SRC/AR2/searchPoint.c /src/emscripten/artoolkit5/lib/SRC/AR2/coord.c /src/emscripten/artoolkit5/lib/SRC/AR2/util.c /src/emscripten/artoolkit5/lib/SRC/KPM/kpmHandle.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmRefDataSet.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmMatching.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmResult.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmUtil.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmFopen.c /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/DoG_scale_invariant_detector.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gaussian_scale_space_pyramid.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gradients.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/harris.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/orientation_assignment.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/hough_similarity_voting.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/freak.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/date_time.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/logger.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/timers.cpp -Oz  -Wno-warn-absolute-paths  -s TOTAL_MEMORY=268435456  -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0  -s ALLOW_MEMORY_GROWTH=1 --bind    -D HAVE_NFT  -o /src/build/libar.bc 

stderr: shared:WARNING: Assuming object file output in the absence of `-c`, based on output filename. Please add with `-c` or `-r` to avoid this warning
system_libs:INFO: retrieving port: libjpeg from https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz
Traceback (most recent call last):
  File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 3704, in <module>
    sys.exit(run(sys.argv))
  File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1960, in run
    compile_source_file(i, input_file)
  File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1942, in compile_source_file
    cmd = get_clang_command([input_file]) + ['-c', '-o', output_file]
  File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1913, in get_clang_command
    args = system_libs.process_args(args, shared.Settings)
  File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1762, in process_args
    args = port.process_args(Ports, args, settings, shared)
  File "/emsdk_portable/emscripten/tag-1.39.4/tools/ports/libjpeg.py", line 53, in process_args
    get(ports, settings, shared)
  File "/emsdk_portable/emscripten/tag-1.39.4/tools/ports/libjpeg.py", line 18, in get
    ports.fetch_project('libjpeg', 'https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz', 'jpeg-9c', sha512hash=HASH)
  File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1681, in fetch_project
    retrieve()
  File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1629, in retrieve
    f = urlopen(url)
  File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden

exec error: 1
Built at Fri Oct 29 22:18:21 UTC 2021

slow loading with multiple nfts

Hi,
i've been using this code for a cordova app which uses multiple nft markers. I would like to improve the loading of .fset; .iset; .fset3;

But first I'm trying to understand where is the bottleneck and which solutions there are.

It seems the bottleneck is when calling "addFreakFeaturesAndDescriptors"

Possible solutions:

  1. "we need to find a specific compression method for the feature sets, improved for mobile devices; this would make the loading of the 3 files (.fset .iset .fset3) faster" https://www.kalwaltart.com/blog/2020/01/21/nft-natural-feature-tracking-with-jsartoolkit5/

  2. Why not store the the whole db of the images in a file, instead of the fset of each marker? (https://github.com/webarkit/artoolkit5/blob/master/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp#L44)

Thanks for your efforts, amazing stuff :)

Improvements to jsartoolkit5

We will discuss here the general improvement to this library. Here a list of features that we can add or test.

  • multi NFT - done
  • improving filtering (NFT)
  • add other types of Barcode

and other, this list will be updated.

the compression feature has breaking changes with uncompressed nfts

would be cool if the not compressed nfts would also work... to avoid that huge regression...

here the error messages:

    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:12221
    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:34869
    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:379946
    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:338082
    _decompressZFT http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > Function:9
    loadZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onSuccessZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    (Async: EventHandlerNonNull)
    ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    addNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    loadNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:60
    load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    <anonymous> self-hosted:1175
    writeCallback http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    (Async: EventHandlerNonNull)
    ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    loadCamera http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    ARCameraParam http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    load http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:50
    onmessage http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:32
    (Async: EventHandlerNonNull)
    <anonymous> http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:28
uncaught exception: [object Object] 8 artoolkit_wasm.js:1:30652
    quit_ http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    exit http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    _exit http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:380150
    <anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:338082
    _decompressZFT http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > Function:9
    loadZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onSuccessZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    (Async: EventHandlerNonNull)
    ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    addNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    loadNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:60
    load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    <anonymous> self-hosted:1175
    writeCallback http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    (Async: EventHandlerNonNull)
    ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    loadCamera http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    ARCameraParam http://localhost:8080/artoolkit/artoolkit_wasm.js:1
    load http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:50
    onmessage http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:32
    (Async: EventHandlerNonNull)
    <anonymous> http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:28

Proposal for transparent images tracking

I'm having issues when the image used to create the markers has mostly transparent backgrounds, that's because the SURF algorithm searches for the contrast between black on white or white on black, and that creates two opposites, mostly, white background images don't work with black background markers.

My proposal:

Detecting if the image has a mostly transparent background and adding that info on the marker files

Add a condition on the marker detection/tracking for the transparency flag

If the flag exists, use a background extraction algorithm and then a color replacement to white or to black while keeping the design colors(Like a green screen).

Didn't been tested yet, just a proposal and reminder of the issue. @kalwalt @ThorstenBux

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.