📄 todo
字号:
TODO Items-----------------------------------------------------------------after version 0.6.0: o libdmtx: Custom pixel packing; Eliminate need for DmtxImageMalloc o libdmtx: Finish calib edge travel end condition o libdmtx: Use calibration edge alignment to set precise locs for all edges o libdmtx: Remove status from DmtxPixelLoc o libdmtx: Finish fec integration (encode_rs_char, aLog[], etc...) o libdmtx: Use new Edifact decode function that doesn't assume full triplet o libdmtx: Check ProcessEndOfSymbolTriplet() for same problem fixed in Edifact o libdmtx: Rewrite encoder(s) to not need "twothirdsbits" tracking (fixes multiple bugs) o libdmtx: Implement consistent and robust error handling (errno.h + custom) o libdmtx: Rename outputIdx to outputLength? (Count pad codewords instead of pointer) o libdmtx: Implement --auto-fast option using algorithm from spec (lighter & faster?) o libdmtx: Implement overlap detection to avoid rescanning in successfully decoded regions o libdmtx: Implement structured append symbols o dmtxread: Write fully structured debug barcode dump from dmtxread (currently just mapping grid) o dmtxread: Print out image representing "unstretched" barcode o dmtxread: Print color weights based on direction o dmtxread: Change dmtxread to print out dump of both failed and successful barcodes if requested o dmtxread: Change dmtxread to print out mis-read modules somehow ... additive, subtractive? - Build color vector that describes jump from background to foreground color - When module is determined to be "off" then add half of color vector - When module is determined to be "on" then subtract half of color vector - resulting image should clearly show misread modules o dmtxread: Print character values (not just codewords) from --codewords (-c) option o dmtxwrite: Print character values (not just codewords) from --format=c (-fc) option o dmtxwrite: Verbose messages describing encoding process o testsuite: Generate metrics in reproducible format to enable historical tracking o testsuite: Investigate option of embedding decoded text into PNG test image comments o testsuite: Tests should compare scanned results to embedded PNG comments o testsuite: Implement exhaustive comparison between --auto-fast and --auto-best o testsuite: 'make test' writes metrics file o testsuite: 'make test' confirms performance o project: Devise approach for recurring tasks (enabling $Id$, checking SVN commits) o project: Conditional use of local getopt.cversion 0.6.0: (23-Nov-2008) x libdmtx: Initial work preparing for custom pixel packing in future x libdmtx: Begin static analysis cleanup with splint x libdmtx: New --disable-dmtxread and --disable-dmtxwrite [Romain] x libdmtx: Ability to specify max/min expected barcode sizes x libdmtx: New edge neighbor tracking (Hough Transform + 2 way edge cache) x libdmtx: Info cache to track scan progress and avoid rescanning pixels x libdmtx: Scan multiple barcodes within an image x libdmtx: Significantly reduced memory footprint x libdmtx: Major reduction in floating point operations x dmtxread: New informative return codes (found, not found, error) x dmtxread: Read input from STDIN x dmtxread: GraphicsMagick support for image reading [Olivier] x dmtxread: JPEG reading support [Ryan] x dmtxread: Diagnostic images display trail left by scanning logic x dmtxwrite: Option to write output to STDOUT [Olivier] x wrapper: PHP wrapper now compiles with recent libdmtx x wrapper: New encoding/decoding Ruby wrapper [Romain] x project: Dedicated README.xxx instructions for specific platforms x project: Various improvements for cross platform buildsversion 0.5.2: (04-Sep-2008) x libdmtx: Move SetRangeLimit and SetScanRegion into library x libdmtx: Replace DMTXUTIL_SUCCESS/ERROR with DMTX_SUCCESS/FAILURE x libdmtx: Add edge threshold filtering x libdmtx: Add encoding support for 144x144 barcodes x libdmtx: Fixed encoding case when message starts with two digits x libdmtx: Fixed bug in range limit option x libdmtx: Add dynamic image shrinking (pixel skipping) x libdmtx: Add step-by-step diagnostic image dump (debug build) x libdmtx: Fixed bug in minimum scan gap setting x libdmtx: Removed y-flip from internal pixel storage x libdmtx: Added strict border tests to eliminate false positives x libdmtx: Added squareness deviation filter x libdmtx: Implement simplified Hough transform for locating first edge x libdmtx: Several behind-the-scenes performance enhancements x wrapper: Python wrapper update; 15x faster (thanks Jonathan!) x wrapper: New PHP wrapper code added x project: Various improvements when building for OS X and FreeBSDversion 0.5.1: (01-Jul-2008) x libdmtx: Fixed Extended ASCII encoding bug x libdmtx: Fixed error correction bug related to multiple interleaved blocks x libdmtx: Added timeout condition for region detection x libdmtx: Allow partial and complete disabling of error correction x libdmtx: Replaced DmtxPixel struct with DmtxRgb for safe pixel copies x libdmtx: Tighter integration with libfec x dmtxread: Conditional build logic for libtiff x dmtxquery: Start new utility to extra information from dmtxread output x testsuite: Started unit test executable for low level testing x wrappers: New Cocoa wrapper for iPhone, iPod Touch, OS X (thanks Stefan!) x project: Include local copies of getopt1.c getopt.c getopt.h x project: Various things to help compiling in MS VC++ x project: Added missing header commentsversion 0.5: (13-Apr-2008) x libdmtx: Rework encoding and decoding API for consistency and intuitiveness x libdmtx: Handle region detection and region decoding as separate tasks x libdmtx: Pass found regions back to calling app before attempting decode x libdmtx: Image mask approach (for performance and multi-barcode scans) x libdmtx: Remove "2" from functions named *MatrixRegion2*() (whoops) x libdmtx: Fix TestForEndOfSymbolEdifact() to handle special cases correctly x libdmtx: Roll scan pattern into core library (inward breadth-first cross) x libdmtx: Replace dmtxScanLine() with dmtxScanPixel() x libdmtx: Implement 4-direction weighted module decisions (eliminates thresholds) x libdmtx: Error correction using libfec (thanks Florian!) x dmtxread: Add ability to scan portion of image x dmtxread: Add --diagnose option that dumps image with embedded scan infomation x dmtxread: Added Z rotation angle (in degrees) to verbose output x dmtxwrite: Move ASCII and codeword output to separate --preview option x dmtxwrite: Added -R option for setting image print resolution in dpi (PNG only) x project: Remove gltest and simpletest from default build target x project: Update Subversion to be keyword friendly ($Id$) x project: Updated documentation to reflect API and option changes x testsuite: Moved all public images to common directory with single copyright fileversion 0.4: (07-Dec-2008) x libdmtx: Remove arbitrary sz scaling (100.0) since it doesn't matter anyway x libdmtx: Fix 4 bottom-right modules in sizes where they are not used (thanks Matthias R.!) x libdmtx: Replace callback references with preprocessor macros x libdmtx: Implement remaining encodation schemes for encoding (X12, Base 256, etc...) x libdmtx: Implement remaining encodation schemes for decoding (X12, Base 256, etc...) x libdmtx: Implement --auto-best option for best possible encoding efficiency x libdmtx: Implement multi-region symbols x libdmtx: Read and write rectangle shaped barcodes x libdmtx: Use GNU autotools (autoconf, automake, libtool) x libdmtx: New region detection overhaul x libdmtx: Fix chcon error in Makefile (right answer might be to use autoconf) x bindings: Include initial version of Python bindings from pydmtx project (thanks Dan!) x bindings: Add decoding functionality through Python x bindings: Expose new encoding functionality through Python x dmtxread: Fix dmtxread crash when same barcode is found more than 16 times x dmtxread: Verbose messages describing traits of detected barcodes x dmtxread: --codewords option to print codewords instead of decoded message x dmtxread: --newline option to insert newline character at end of output x dmtxwrite: Additional output formats (PNG, ASCII, codewords) x testsuite: 'make test' executes regression tests for encodation x testsuite: Add marathon images to project (thanks John!)version 0.3: (15-Oct-2006) x Use preprocessor to pull code into one big file before compiling x Update Makefile to handle monolithic approach; add targets for test, util, tarball x Rename DmtxInfo struct and variables to DmtxDecode (for consistency with DmtxEncode) x Merge placement logic into single implementation for both encoding and decoding x Deploy codebase to SourceForge CVS x Add revision control keywords to source files x Implement remaining encodation schemes in dmtxdecode.c (X12, Base 256, etc...) x Create separate file for callback functions (allows them to be optional) x Move PNG (and other format) logic and dependencies to dmtxread, dmtxwrite, etc... x Fix the regressions (crash bugs) introduced during v0.2 structural rework x Add multi-page TIFF capabilities to dmtxread x Move pure decode calls from dmtxScanLine into a dmtxdecode.c function x Sample module color from more than one pixel location x Rename DmtxVector3 to DmtxColor3 and merge into dmtxcolor.c x Fix LoadPngImage() in dmtxread.c to return image count x Add package/build dependencies to INSTALL file x Build coding style test scripts x Replace current calibration size estimate with new approach x Size step size dynamically according to pixel size x Improved dmtxwrite (fixed bugs, implemented -o option) x Increase dmtxread default scanline count (feasible because of better stability) x Add man page for dmtxwriteversion 0.2: (11-Jun-2006) x Move dmtxCapturePixel routine to library code x Initial restructuring of code for architectural goodness x Improve API for real-world use (and not just dumping results to STDOUT) x Add "dmtxread" command line utility x Add "dmtxwrite" command line utility x Implement error detection x Create "simpletest.c" for full-circle processing x Use libpng(3) in library to read Data Matrix images x Slap together some basic documentationversion 0.1: (22-Apr-2006) x Cycle texture images with right-click x Complete PlotPoint so it handles floating rows and columns x Implement right and left directions of FollowEdge x Call right and left edge following scans started from vertical step scans x Implement 2D vector and matrix functions x Trace lines with actual line object (2D ray) x Turn corners when encountering the end of a followed line x Build 2d transformation to wrap around region, assuming parallelogram x Display pane 4 with reverse-transformed image capture x Enhance dmtxCapturePixel to use "area averaging" instead of nearest neighbor x Figure out why squares are 3 pixels off (to start: draw white gl lines over follower paths) x Add callback function for PlotEventPoint(x, y, event_type) x Improve follower logic (weighted line fit) x dmtxGetPixel: do averaged interpolation followed by a tMin/tMid/tMax cutoff x Add in de-skew transformation x Refactor vector libraries to consistently list target parameter first x Calibrate based on calibration lines x Shrink-fit transformation around regionfuture versions:------------------------------------------------------------------------------ o libdmtx: Capture high-level design in documentation (data flow, module analogies) o libdmtx: Try bi-linear approximation (instead of linear) in follower edge detection o libdmtx: Implement fixed point math functions for use on mobile platforms o libdmtx: Port to Windows? o libdmtx: Add calibration functionality to remove spherical distortionperhaps never:--------------------------------------------------------------------------- o libdmtx: Implement pre-ECC200 Data Matrix standards (big effort/low demand)Website:--------------------------------------------------------------------------- o Explore using single background image instead of split o Add what we currently do, don't do, would like to do in the future o Add http://hosted-projects.com/trac/hudora/public/wiki/huBarcode to resources pageBig proposed changes:--------------------------------------------------------------------------- * Change image memory handling. Programs pass pointer to their own memory instead of copying into separately malloc'd DmtxImage buffer. New functions are required to specify native image format, include origin location and RGB/K packing order. (see "No copies of pixel data") * Make finder bar detection pluggable so a separate future version can be made for dot peen pattern detection (remaining steps would be unchanged).No copies of pixel data---------------------------------------------------------------------------libdmtx only cares about potential channels, which need not becombined.assumptions: * each pixel has a predictable, fixed number of bits that may or may not fall along byte boundaries (1/8/16/24/32/etc...) * up to 4 (more if needed) channels can be used * unused portions of pixel data can be ignored (not even mentioned) * pixel buffers always hold the first pixel as their origin, but that origin might be the top-left or the bottom-left of the image (other?) * what about channels that are larger than 1 byte? * any chance that image rows will have padding between them?--------------------typedef enum { DmtxOriginTopLeft, DmtxOriginBottomLeft, DmtxOriginTopRight, DmtxOriginBottomRight
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -