griffintaur / qrcodereader Goto Github PK
View Code? Open in Web Editor NEW:white_square_button: The Aim of the project is to detect and extract QR code from the images
License: MIT License
:white_square_button: The Aim of the project is to detect and extract QR code from the images
License: MIT License
If a path is not valid, an exception should be raised instead of just printing "file not found". This will prevent the confusion caused by the error message when the program continues to execute without a file found.
Line to change: https://github.com/Griffintaur/QRCodeReader/blob/master/Imagehandler.py#L18
Current output when a path is invalid:
suzil@vladimir ~/Documents/random/QRCodeReader $ python call.py
file not found
Traceback (most recent call last):
File "call.py", line 36, in <module>
App()
File "call.py", line 28, in App
TransformImage=obj.QRCodeInImage()
File "/home/suzil/Documents/random/QRCodeReader/Imagehandler.py", line 66, in QRCodeInImage
patternFindingObj=PatternFinding(self.GetImageContour(),self.imageOriginal)
File "/home/suzil/Documents/random/QRCodeReader/Imagehandler.py", line 43, in GetImageContour
thresholdImage= self.__convertImagetoBlackWhite()
File "/home/suzil/Documents/random/QRCodeReader/Imagehandler.py", line 21, in __convertImagetoBlackWhite
self.Image=cv.imread(self.ImagePath,cv.IMREAD_COLOR)
AttributeError: 'Imagehandler' object has no attribute 'ImagePath'
Don't know if you are still maintaining this project. But I found something that might improve this program.
In Imagehandler.py line 56, it seems you convert the raw image to threshold image, and then apply Canny operator on it.
However, Canny operator can directly be applied on grayscale image, and thus reduce infomation loss in such progress.
By changing the parameter cv.Canny (Imagehandler.py line 57) from threshold_image to grayscale_image, will greatly improve the accuracy of the result.
call.py
shows an error for an input containing no QR, which need to be handled.Statements like
if A is None:
pass
Should be rewritten to the equivalent, but simpler
if not A:
pass
The codebase should use a common styling convention in order to make it easier for new developers to understand the code. We can use Flake8 to achieve this.
git
should not recognize *.pyc
files.
suzil@vladimir ~/Documents/random/QRCodeReader $ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: call.py
modified: config.yml
Untracked files:
(use "git add <file>..." to include in what will be committed)
AffineTransformation.pyc
FindingOrientationOfContours.pyc
Imagehandler.pyc
PatternFinding.pyc
This spins off issue #19
After testing with several images without QR code, I've seen 3 different outcomes (there might be more I have not discovered). I'm new to this repo and may not able to tackle these immediately.
Further divide-and-conquer might be useful.
The project has a new UI while the readme still shows the windows pop up, which needs to be updated with the new look and feel
Statements like this one in PatternFinding.py
if parent == -1:
return False
else:
return True
Should be rewritten to the equivalent, but simpler
return not (parent == -1)
Is it possible to have QRcode with multiple data channels to store 3x data?
Possible data splitter: def splitting(data): [return b"0"+data[0::3], b"1"+data[1::3], b"2"+data[2::3]]
And then run those through a QRcode generator, and use red, green, blue channels to pack them?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.