This is the C++ implementation of the paper Micrography QR Codes (IEEE TVCG 2019)
Micrography QR codes is a novel machine-readable graphic generated by embedding a QR code within a micrography image. The unique structure of micrography makes it incompatible with existing methods used to combine QR codes with natural or halftone images. We exploited the high-frequency nature of micrography in the design of a novel deformation model that enables the skillful warping of individual letters and adjustment of font weights to enable the embedding of a QR code within a micrography. The entire process is supervised by a set of visual quality metrics tailored specifically for micrography, in conjunction with a novel QR code quality measure aimed at striking a balance between visual fidelity and decoding robustness. The proposed QR code quality measure is based on probabilistic models learned from decoding experiments using popular decoders with synthetic QR codes to capture the various forms of distortion that result from image embedding. Experiment results demonstrate the efficacy of the proposed method in generating micrography QR codes of high quality from a wide variety of inputs. The ability to embed QR codes with multiple scales makes it possible to produce a wide range of diverse designs. Experiments and user studies were conducted to evaluate the proposed method from a qualitative as well as quantitative perspective.Project Page.
Our method handles inputs with varying complexity. More results and dynamic exhibition can be found in our Online Gallery.
- OpenCV 2.4.6
- OpernGL (glew32、freeglut)
- Linear System (Taucs)
- GnuWin32
- QREncode
- ZXing & ZBar
- Json
Data:
- AppData : Main Data Structure
- AppQRCData : Data Structure of QR code
- AppWordArtData
- HKCWordArtEdt: Data Structure of Micrography Editing
- HKCWordArtEvi: Data Structure of Micrography Generation
- MQRCData : Data Structure of Micrography Defomation
- QRWordArt: Data Structure of Micrography(eg. Steamline、Pattern...)
Algorithm:
-
AppAlgoQRC : QR codes Generation
-
AppAlgoEnergyVisual : Micrography Visual Quality
- AppAlgoEnergyTextSpace
-
AppAlgoProbabilityModel : QR code Error Probability Module
- AppAlgoProbabilityModule : Pm
-
AppAlgoQRCodeSegmentation : QR code Image Segmentation
-
AppAlgoQRCodeBGColor : MQRC Background Color Selection
-
AppAlgoEncodingOptimization : Encoding Optimization
- AppAlgoEncodingRSModify
-
AppAlgoMGWarpingOptimization : Error-aware Micrography Deformation
- AppAlgoMGWarpingOperator
- AppAlgoMGStreamlineWarping : Streamline Warping
- AppAlgoMGLetterWarping : Structure-preserving letter warping
- AppAlgoMGFontWeightAdjustment : Font Weight Adjustment
- AppAlgoMGWarpingOperator
-
AppAlgoModuleBlending : Module Blending
-
AppAlgoQRCodeRenderer : Rendering of MQRC
-
AppAlgoQRCodeEvaluation : Evaluation of MQRC
-
AppAlgoZBar : ZBar
-
AppAlgoZXing : ZXing
-
AppAlgoRegionSeg :Image Partioning
-
AppAlgoStreamlineTrace :Streamline Tracing
-
AppAlgoTextAlign :Text Alignment
-
AppAlgoTextBigScale :Scaling Text
-
AppAlgoTextColor :Sampling Text Color
-
AppAlgoTextColorAdjust :Adjusting Text Color
-
AppAlgoTextDelete :Deleting Text
-
AppAlgoTextGeneration :Text Generation
- AppAlgoTextTyping :Adding Text
-
AppAlgoTextOrderOri :Orientation of Text
Control(UI):
- From_Event : Events for changing the properties
- Form_QRCode : Generation of QR codes
- Form_WordArt: Generation of Micrography
- Form_MQRC : Generation of Micrography QR codes
View:
- AppRenderDefault