Commit Graph

568 Commits

Author SHA1 Message Date
Milian Wolff 61508f461a Optimize: Return the matrix reference directly instead of copying it.
This removes another copy of frame data, thereby improving the FPS
of the QZXingFilter example noticeably.
2017-01-10 13:17:54 +01:00
Milian Wolff 449a808972 Crop to capture rect directly when converting RGB to grayscale
This improves the performance since we only need to convert the
actually interesting part of the frame, instead of the full frame.
2017-01-10 13:17:54 +01:00
Milian Wolff c882465649 Improve performance of rgb(a) reading, convert directly to greyscale
This again leads to a noticeable performance improvement of the
QZXingFilter example, as we get rid of one full copy of the image
data by converting directly into greyscale, instead of first
converting to RGB and then converting to greyscale.
2017-01-10 13:17:54 +01:00
Milian Wolff 9d378fa2e4 use __builtin_ctz instead of reinventing it in a slower way 2017-01-10 13:17:54 +01:00
Milian Wolff b5e4f06e9f Fix linking on recent Qt for iOS
The qtmn hack is not required anymore.
2017-01-10 13:17:54 +01:00
Milian Wolff 0e10d8aeca Add simple FPS counter to QZXingLive example 2017-01-10 13:17:54 +01:00
Milian Wolff 69e05c1ff1 Add support for NV12 video frames
This was encountered on a recent Android device.
2017-01-10 13:17:54 +01:00
Milian Wolff 75b1a0d355 Further optimize QZXingFilterRunnable::processVideoFrameProbed
Do not call detaching QByteArray::data, use constData instead.
Also hoist some constants out of the inner conversion loops and make
more variables const.
2017-01-10 13:17:54 +01:00
Milian Wolff 3eb5b0b869 Cleanup debug code, save at most 100 images. 2017-01-10 13:17:54 +01:00
Milian Wolff bc2badb5b5 Optimize: reduce memory allocations, convert directly to grayscale
This dramatically improves the performance of the QZXingFilter.
2017-01-10 13:17:54 +01:00
Milian Wolff d112bf4186 Don't try harder by default in the QZXingLive example 2017-01-10 13:17:54 +01:00
Milian Wolff 7937cb84b5 Only try to mirror images when tryHarder is set to true
Additionally, this is only done until a match is found, instead of
always applying mirroring for the 2nd, 3rd and 4th frames.
2017-01-10 13:17:54 +01:00
Milian Wolff cafad4a9c0 Add captureRect functionality
This allows one to only detect within a certain unscaled region
of the input frame. The reduction of pixels scanned leads to
a significant performance win, and the removal of the scaling
improves the quality of the checked image, thereby leading to
higher detection rates.
2017-01-10 13:17:54 +01:00
Milian Wolff a7103d5cac Expand QZXingFilter example code
- allow autofocus and manual focus
- count number of tags matched
- allow configuring the barcode scanner from QML
2017-01-10 13:17:54 +01:00
Milian Wolff eba661a424 Make QZXing's tryHarder, charSet and foundedFormat accessible from QML 2017-01-10 13:17:54 +01:00
Milian Wolff 4c22c65b5e Constify data and put it into the .rodata section 2017-01-10 13:17:54 +01:00
Milian Wolff bb903ca27e Enable all decoders by default
Otherwise this leads to access of uninitialized, when one forgets
to set a custom list of decoders.
2017-01-10 13:17:54 +01:00
Milian Wolff 8cdfdee225 Make test compile on 64bit Linux machines 2017-01-10 13:17:54 +01:00
favoritas37 b68b4c3fed minor edits in QQrDecorder readme file 2016-12-28 15:01:20 +02:00
favoritas37 67eb93253e minor edit in QQrdecoder project readme file. 2016-12-28 14:58:56 +02:00
Nikolaos Ftylitakis db9d8a3441 Update readme.md
Fixed broken relative path to project QZXingLive
2016-12-03 15:57:36 +02:00
favoritas37 79a5396aeb restored folder QQrDecoder to not break external links. Added reference to the updated project. 2016-12-03 15:55:31 +02:00
favoritas37 7ea672e6d1 fixes issues #4 and #9 (dummy commit to add the issue reference to the commit 37ca7a1 ) 2016-12-03 15:46:26 +02:00
favoritas37 d260ac47b2 removed obsoled example project QQrDecoder. Replaced by QZXingLive project 2016-12-03 13:07:45 +02:00
favoritas37 5cd96d1aae Multiple changes in test suite. a) Added tests for ReedSolomonEncoder (current status: failing) b) Added printing of stacktrace upon test missmatch, will work only where supported by backward.hpp code. 2016-12-03 12:48:50 +02:00
favoritas37 588d478b7b updated .gitignore 2016-12-03 12:34:22 +02:00
Nikolaos Ftylitakis 37ca7a13e1 Merge pull request #12 from ChALkeR/patch-2
QZXingFilter: add YUV420P format support
2016-12-03 12:16:01 +02:00
Nikolaos Ftylitakis d2f7748148 Merge pull request #11 from ChALkeR/patch-1
QZXingLive example: remove unused qzxing.h include
2016-12-03 12:15:42 +02:00
Сковорода Никита Андреевич fe1337394e QZXingFilter: add YUV420P format support 2016-12-01 17:22:33 +03:00
Сковорода Никита Андреевич 3adcc83300 QZXingLive example: remove unused qzxing.h include
qzxing.h doesn't exist, and the example works fine without it.
2016-12-01 02:58:00 +03:00
Nikolaos Ftylitakis 46c8ab94f0 Create license.txt
added the license file. The license of the project is the inherited license from zxing project. Apache License 2.0.
2016-11-15 15:28:50 +02:00
favoritas37 9941055ae6 minor refactoring to simplify the code on the construction of ArrayRef instances 2016-10-04 21:08:22 +03:00
favoritas37 505f60c264 fixed the range of the array where the coefficients will be stored at ReedSolomonEncoder 2016-10-04 21:07:39 +03:00
Nikolaos Ftylitakis bd96c910e9 Merge pull request #6 from sergey-platonov/isnan-fix
zxing::isnan for non-msvc compilers was implemented with c99 function,
which is still not fully supported by some compilers (e.g., GCC).
Added an implementation for compilers without c++11 or c99 support. And wrapped
all related code in #if.
2016-10-02 13:55:15 +03:00
favoritas37 3e8509c12a Merge branch 'dkormalev-better-qt5-support' 2016-10-02 13:51:13 +03:00
favoritas37 725e67f66c Merge branch 'better-qt5-support' of https://github.com/dkormalev/qzxing into dkormalev-better-qt5-support 2016-10-02 13:13:59 +03:00
Sergey Platonov d49b7e12ad zxing::isnan implemented for different cases
zxing::isnan for non msvc compilers was implemented with c99 function,
which is still not fully supported by some compilers (e.g., gcc).

I've added imlementation for compilers without c++11 or c99 support. And wraped
all releated code in #if.
2016-09-27 16:01:32 +03:00
Denis Kormalev 60c4608001 C++03 support 2016-09-27 15:38:33 +03:00
favoritas37 fa186c2cc9 Added new example project for live decoding in QtQuick 2 (contibution of Luiggi Reffatti from Fira Soft ). Will be examined in the future to embed QZxingFilter implementation to the main implementation fo the library. 2016-09-27 03:06:28 +03:00
favoritas37 fa8d3ca99f further align WhiteRectangleDetector 2016-09-27 03:01:32 +03:00
favoritas37 f30e66917f fixed compilation issue for Windows regarding the use of isnan function 2016-09-27 02:59:44 +03:00
favoritas37 52262cb0d2 better aligned implementation of WhiteRectangleDetector with the Java implementation 2016-09-27 02:08:03 +03:00
favoritas37 d5e5c895d8 For backward compatibility, after merging pull request #3, the original tagFoundAdvanced signal has been reimplemented. Also added try catch clause around the new singal since in a lot of cases it fails to detect the decoded barcode's rectangle. To be improved. 2016-09-27 02:06:54 +03:00
Nikolaos Ftylitakis a44cce230c Merge pull request #3 from alexeylysenko/master
Add getting barcode region and sending it in advanced signal
2016-09-26 20:55:49 +03:00
Aleksey Lysenko 30f6f70e3e Add getting barcode region and sending it in advanced signal 2016-09-19 11:44:53 +03:00
Denis Kormalev f7b9e83078 Better Qt5 support 2016-09-15 13:22:08 +03:00
Nikolaos Ftylitakis 243c4dbef2 Update README.md
to have the contact instructions
2016-08-11 18:21:10 +03:00
Nikolaos Ftylitakis f4208ba01e Create README.md 2016-08-10 18:16:59 +03:00
favoritas37 af86c7857c trying to deal with linker errors on msvc 2013 2016-08-03 17:47:36 +03:00
favoritas37 5b5b851c96 refactoring on the namespaces
Added call to ReedSolomonEncoderTests
2016-08-01 19:39:09 +03:00