You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(7) |
Jul
(1) |
Aug
(4) |
Sep
(21) |
Oct
|
Nov
|
Dec
(9) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(10) |
Aug
(14) |
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2010 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(8) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(2) |
Nov
|
Dec
|
|
From: Hector G. de M. <no...@gm...> - 2013-10-25 08:12:43
|
I agree with Nick. Try to pre process your raw image a little bit in order to reduce some possible sources of noise. It seems that you are working under a controlled environment, so there should be a systematic way to pre-process your input images. On Thu, Oct 24, 2013 at 8:06 PM, Nick Irvine <nfi...@nf...> wrote: > I'm no expert on the subject, so grain of salt, but here's my two cents. > > When you scale an image down, you sharpen soft edges. Say you've got > a somewhat blurry edge that's 10px and has an intensity gradient of > 25%. Scaling the image to 50% scales that gradient, so it'll be 50% > over 5px. And that's how libdmtx detects edges, by the gradient > slope, aka threshold. > > readdtmx has a setting for this: --threshold. Try lowering that. > > Also try the --shrink option to get dtmxread to shrink the image for you. > > > Nick > > On Thu, Sep 26, 2013 at 9:45 PM, gian hatams <gra...@gm...> > wrote: > > I am having problems decoding a 640x480 image using the command "dmtxread > > 640x480.bmp". However if I ran the scaled down version of the same file > > (i.e. 320x240) I can get dmtxread decode the barcode. > > > > I am using dmtxread/libdmtx version 0.7.2 > > > > I attached both files for reference. But I must be missing something > > fundamental here. > > > > I would appreciate any advice. > > > > Best Regards, > > GH > > > > > > > ------------------------------------------------------------------------------ > > October Webinars: Code for Performance > > Free Intel webinars can help you accelerate application performance. > > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > > from > > the latest Intel processors and coprocessors. See abstracts and register > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > > _______________________________________________ > > libdmtx-development mailing list > > lib...@li... > > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > > > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > -- Héctor Webpage: http://mathtronics.wordpress.com/ |
|
From: Nick I. <nfi...@nf...> - 2013-10-24 18:30:53
|
I'm no expert on the subject, so grain of salt, but here's my two cents. When you scale an image down, you sharpen soft edges. Say you've got a somewhat blurry edge that's 10px and has an intensity gradient of 25%. Scaling the image to 50% scales that gradient, so it'll be 50% over 5px. And that's how libdmtx detects edges, by the gradient slope, aka threshold. readdtmx has a setting for this: --threshold. Try lowering that. Also try the --shrink option to get dtmxread to shrink the image for you. Nick On Thu, Sep 26, 2013 at 9:45 PM, gian hatams <gra...@gm...> wrote: > I am having problems decoding a 640x480 image using the command "dmtxread > 640x480.bmp". However if I ran the scaled down version of the same file > (i.e. 320x240) I can get dmtxread decode the barcode. > > I am using dmtxread/libdmtx version 0.7.2 > > I attached both files for reference. But I must be missing something > fundamental here. > > I would appreciate any advice. > > Best Regards, > GH > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > |
|
From: gian h. <gra...@gm...> - 2013-09-27 06:48:46
|
Hi, I am having problems with dmtxread decoding a data matrix image saved as a 640x480 BMP file. If I downscale this image to 320x240 I can get it to decode. The version of the dmtxread/libdmtx is 0.7.2. I just used the standard command parameter: dmtxread -n -D [BMP_FILE]. Am I missing something? Regards, GH |
|
From: soha s. <sha...@ho...> - 2013-09-25 08:07:32
|
Hii want to work on type of machine vision in textile industry. i want to work on NI smart camera can i program NI cameras with Libdmtx. if it's necessary my camera is ni1742thanks in advance. |
|
From: kiran n. <kir...@gm...> - 2013-09-25 05:15:11
|
hello i found that the latest version of libdmtx is 0.7.4. This version is almost two years old. is there any latest version available. also i have some difficulty while understanding the code of ver 0.7.4. can anybody help me to understand it or is there any type of documents available for same. thanks in advance regards kiran |
|
From: Hector G. de M. <no...@gm...> - 2013-09-11 15:58:51
|
Hi,
this is my first mail in this mailist, I do not know whether it has some
activity.
I am employing this library to locate robots on a table, I just put a
matrixcode on top and
one webcam is recognizing the code, orientation and also the localization
of the robot.
So far, the orientation is working fine with this operation:
reg = dmtxRegionFindNext(dec, &timeout);
marker.heading = atan2(reg->bottomLine.locNeg.Y
- reg->bottomLine.locBeg.Y,
reg->bottomLine.locNeg.X
- reg->bottomLine.locBeg.X)*180/M_PI;
But the position of the intersection between the bottom and left lines of
the datamatrix
is not working well. So far I was using this
// Intersection of the two solid borders, in pixels
marker.posX = reg->bottomLoc.X;
marker.posY = reg->bottomLoc.Y;
This does not work, it returns sometimes the intersection, but othertimes
it returns the
other end of the line. Looking at the definition of bottomLoc, what does it
mean arbitrary?
DmtxPixelLoc bottomLoc; /* known (arbitrary) location on bottom edge
*/
Is there any way to obtain these coordinates of the intersection?
Thank you very much
--
Héctor
Webpage: http://mathtronics.wordpress.com/
|
|
From: Nick I. <nfi...@nf...> - 2011-05-31 06:07:04
|
Hi all, Finally found a good combination for my usage: * threshold: 50 * max_count: 1 * resize to 512 pixels (using PIL) On the aforementioned processor, getting a nice 0.02s find time and 0% error rate on my batch of 60 or so. Very pleased :D <obligatory> More details and theories here: http://www.nfirvine.com/wiki/Dmtag/Tuning </obligatory> Thank you, Nick Irvine On Tue, Aug 10, 2010 at 07:44, Nick Irvine <nfi...@nf...> wrote: > On Tue, Aug 10, 2010 at 00:38, Alex Cohn <ale...@ne...> wrote: >> Using 8 bpp may help a bit, but not dramatically. What are the >> processing times of dmtx for your images? > > In that case, I probably won't bother. > > Just testing now: On my preprocessed images (greyscaled, shrunk to > ~512x512), about 2s for a hit, and 25s for a miss. On unprocessed > images, it takes > 10min (didn't wait around to find out). This is > timed on my desktop with an AMD Phenom II X2 550 Processor at 3100MHz > and 4GB RAM. However, my production system will likely be a lot > leaner (sub-netbook specs; am looking at SheevaPlugs currently). > Generally, under 1 minute per image hit or miss is good, under 5 > minutes is acceptable. > >> You have photograhs of different sizes... Are the marker sizes also >> very different? Do you have some knowledge regarding the size and >> placement of the marker on these images? Do all images have valid >> markers, or only some of them? Is it important to identify the marker >> on every photo, or it is okey to miss some? > > The end user (not me) is taking the photographs, and while I can guide > them, I don't have absolute control over placement/angle of the > markers, and the photos are the sort that you can't exactly go out and > take again. I want to limit my assumptions as much as possible. > > Actually, images containing DM's are rare: 1 in 10 or so. Scanning a > non-DM image is very expensive. Ideally, we would never miss a > DataMatrix, nor find one where one doesn't exist (haven't encountered > this). In my workflow, given the series of photos, if a photo is > found to contain a DM, subsequent photos until the next DM are tagged > using the DM data. If the program misses a DM, it will get tagged > with the previous data, which is fairly bad. > >> For example, libdmtx allows to define the region where it searches for >> the marker. Or limit time for scanning the image - if you know that a >> photo either has a noticeable marker, or has no marker at all, you can >> set the time limit very low. > > I will be playing around with the timeout a bit. As I said, I'll be > running this with photos of varying size and on hardware of varying > capability. Suffice to say, it'll definitely be an option in the > config file :) > > Thanks again, > Nick Irvine > |
|
From: Nick I. <nfi...@nf...> - 2011-05-31 01:34:04
|
Actually, no. I was, yesterday, but found the problem to be elsewhere. Thanks for the quick response though Mike. Nick On Sun, May 29, 2011 at 22:12, Mike Laughton <mi...@dr...> wrote: > Hi Nick, > Yes, this case should work without any issues. Are you finding otherwise? > Mike > > On Sun, May 29, 2011 at 11:41 PM, Nick Irvine <nfi...@nf...> wrote: >> >> Hi all, >> >> I'm just wondering if libdmtx can still handle a 90 degree-rotated >> image, i.e., shot in portrait rather than landscape. I can't seem to >> find information on the subject on the website. >> >> Thanks, >> Nick Irvine >> >> >> ------------------------------------------------------------------------------ >> vRanger cuts backup time in half-while increasing security. >> With the market-leading solution for virtual backup and recovery, >> you get blazing-fast, flexible, and affordable data protection. >> Download your free trial now. >> http://p.sf.net/sfu/quest-d2dcopy1 >> _______________________________________________ >> libdmtx-development mailing list >> lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libdmtx-development > > > > -- > Mike Laughton > Chief Software Architect > Dragonfly Logic, Inc. > 612.845.3339 (m) > |
|
From: Mike L. <mi...@dr...> - 2011-05-30 05:12:51
|
Hi Nick, Yes, this case should work without any issues. Are you finding otherwise? Mike On Sun, May 29, 2011 at 11:41 PM, Nick Irvine <nfi...@nf...> wrote: > Hi all, > > I'm just wondering if libdmtx can still handle a 90 degree-rotated > image, i.e., shot in portrait rather than landscape. I can't seem to > find information on the subject on the website. > > Thanks, > Nick Irvine > > > ------------------------------------------------------------------------------ > vRanger cuts backup time in half-while increasing security. > With the market-leading solution for virtual backup and recovery, > you get blazing-fast, flexible, and affordable data protection. > Download your free trial now. > http://p.sf.net/sfu/quest-d2dcopy1 > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > -- Mike Laughton Chief Software Architect Dragonfly Logic, Inc. 612.845.3339 (m) |
|
From: Nick I. <nfi...@nf...> - 2011-05-30 05:11:25
|
Hi all, I'm just wondering if libdmtx can still handle a 90 degree-rotated image, i.e., shot in portrait rather than landscape. I can't seem to find information on the subject on the website. Thanks, Nick Irvine |
|
From: Alex C. <ale...@ne...> - 2011-01-19 13:23:22
|
Yes, DMTX will be looking for the "best" of three channels. Also, if your camera delivers YUV, the price of color conversion to 32bpp RBG may be quite significant. Alex On Wed, Jan 19, 2011 at 9:00 PM, Jarda Kotesovec <jar...@gm...> wrote: > Thanks a lot for hints. Currently I am passing DmtxPack32bppXRGB image > to dmtxImageCreate. Apparently I can use YUV on iphone as well, but > the key questions is if libdmxt does the conversion to grayscale > before it look for barcode or does it try for each color channel > separately? In latter case it should speed up process 3 times. > > I tried to use O3 instead of Os, but speed is same. So it takes about > 2s to proceed one cycle (I claimed 3s yesterday - it was mistake - it > always takes about 2s when it doesn't recognise the barcode and > 0.1-1.5s if it is successful. And changing resolution from 300x300px > to 200x200px doesn't improve it, which is odd. > > Jarda > > On Wed, Jan 19, 2011 at 4:12 AM, Alex Cohn <ale...@ne...> wrote: >> With Android phones, I found that color conversion may take too much >> time. The "natural" format of preview picture on Android is YUV 4:2:0, >> which means you can simply consider it as grayscale (8 bpp). Working >> with grayscale instead of RGB helped us a lot. >> >> On the other hand, 2 sec is a reasonable time in our scenarios (we are >> working with VGA resolution usually, 640x480). >> >> Anyway, it is important to set a low timeout, as you already >> discovered. Why spend much time looking for the matrix on the current >> preview if maybe it will be easily detected on the next preview frame? >> >> Cheers, >> Alex >> >> On Wed, Jan 19, 2011 at 3:20 AM, Evan Nemerson <li...@co...> wrote: >>> I don't have any experience with the iPhone, or Apple development in >>> general, but most Linux distributions will use -O2 by default and my >>> guess is that this is what Xcode's release profile does. In the case of >>> libdmtx, however, using -O3 makes a *huge* difference, and I haven't >>> seen any errors. I've tried this on Linux AMD64, x86, and ARM. >>> >>> -Evan >>> >>> >>> >>> I haven't tried libdmtx on an iPhone (or xcode), but I have done a bit >>> of investigation of performance elsewhere. Most distributions >>> >>> On Tue, 2011-01-18 at 17:59 +0000, Jarda Kotesovec wrote: >>>> Hi >>>> >>>> I am experimenting with libdmtx on iPhone 3GS. I get image from video >>>> stream and then I pass it to libdmtx to recognise it and if it is not >>>> recognised I capture another image and so on. It works good - it reads >>>> quite small data matrix codes (about 8mm wide). I use timeout option >>>> to don't get stucked for long time when there is no data matrix on >>>> picture. >>>> >>>> Most time consuming is finding data matrix in picture >>>> (dmtxRegionFindNext(dmtxDecode, &timeout) ); >>>> - I can't get better time (setting lower timeout doesn't have affect) >>>> then 3s when there is no data matrix on picture and about 1.5s when >>>> datamatrix is detected. On macbook (2.4Ghz) it takes about 30ms on >>>> picture with same resolution. And surprised me that when I tried to >>>> capture image 200x200px instead of 300x300px it didn't improve >>>> performance - or at least no significantly (I will test this more >>>> tomorrow). I would expect that it will need only half of time when >>>> area is half. >>>> >>>> According to time profiler in xcode are following methods most time consuming: >>>> FindBestSolidLine - 19% >>>> dmtxMatrix3VMultiply - 18.5% >>>> ReadModuleColor - 14.3 % >>>> >>>> And I tried these tests with 'Release' profile in xcode which gives >>>> best performance. >>>> >>>> Have anyone idea how can I tweak performance little bit? Has anyone >>>> tried libdmtx on iPhone? >>>> >>>> Thanks! >>>> >>>> regards >>>> Jarda >>>> >>>> ------------------------------------------------------------------------------ >>>> Protect Your Site and Customers from Malware Attacks >>>> Learn about various malware tactics and how to avoid them. Understand >>>> malware threats, the impact they can have on your business, and how you >>>> can protect your company and customers by using code signing. >>>> http://p.sf.net/sfu/oracle-sfdevnl >>>> _______________________________________________ >>>> libdmtx-development mailing list >>>> lib...@li... >>>> https://lists.sourceforge.net/lists/listinfo/libdmtx-development >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Protect Your Site and Customers from Malware Attacks >>> Learn about various malware tactics and how to avoid them. Understand >>> malware threats, the impact they can have on your business, and how you >>> can protect your company and customers by using code signing. >>> http://p.sf.net/sfu/oracle-sfdevnl >>> _______________________________________________ >>> libdmtx-development mailing list >>> lib...@li... >>> https://lists.sourceforge.net/lists/listinfo/libdmtx-development >>> >> >> ------------------------------------------------------------------------------ >> Protect Your Site and Customers from Malware Attacks >> Learn about various malware tactics and how to avoid them. Understand >> malware threats, the impact they can have on your business, and how you >> can protect your company and customers by using code signing. >> http://p.sf.net/sfu/oracle-sfdevnl >> _______________________________________________ >> libdmtx-development mailing list >> lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libdmtx-development >> > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > |
|
From: Jarda K. <jar...@gm...> - 2011-01-19 12:01:05
|
Thanks a lot for hints. Currently I am passing DmtxPack32bppXRGB image to dmtxImageCreate. Apparently I can use YUV on iphone as well, but the key questions is if libdmxt does the conversion to grayscale before it look for barcode or does it try for each color channel separately? In latter case it should speed up process 3 times. I tried to use O3 instead of Os, but speed is same. So it takes about 2s to proceed one cycle (I claimed 3s yesterday - it was mistake - it always takes about 2s when it doesn't recognise the barcode and 0.1-1.5s if it is successful. And changing resolution from 300x300px to 200x200px doesn't improve it, which is odd. Jarda On Wed, Jan 19, 2011 at 4:12 AM, Alex Cohn <ale...@ne...> wrote: > With Android phones, I found that color conversion may take too much > time. The "natural" format of preview picture on Android is YUV 4:2:0, > which means you can simply consider it as grayscale (8 bpp). Working > with grayscale instead of RGB helped us a lot. > > On the other hand, 2 sec is a reasonable time in our scenarios (we are > working with VGA resolution usually, 640x480). > > Anyway, it is important to set a low timeout, as you already > discovered. Why spend much time looking for the matrix on the current > preview if maybe it will be easily detected on the next preview frame? > > Cheers, > Alex > > On Wed, Jan 19, 2011 at 3:20 AM, Evan Nemerson <li...@co...> wrote: >> I don't have any experience with the iPhone, or Apple development in >> general, but most Linux distributions will use -O2 by default and my >> guess is that this is what Xcode's release profile does. In the case of >> libdmtx, however, using -O3 makes a *huge* difference, and I haven't >> seen any errors. I've tried this on Linux AMD64, x86, and ARM. >> >> -Evan >> >> >> >> I haven't tried libdmtx on an iPhone (or xcode), but I have done a bit >> of investigation of performance elsewhere. Most distributions >> >> On Tue, 2011-01-18 at 17:59 +0000, Jarda Kotesovec wrote: >>> Hi >>> >>> I am experimenting with libdmtx on iPhone 3GS. I get image from video >>> stream and then I pass it to libdmtx to recognise it and if it is not >>> recognised I capture another image and so on. It works good - it reads >>> quite small data matrix codes (about 8mm wide). I use timeout option >>> to don't get stucked for long time when there is no data matrix on >>> picture. >>> >>> Most time consuming is finding data matrix in picture >>> (dmtxRegionFindNext(dmtxDecode, &timeout) ); >>> - I can't get better time (setting lower timeout doesn't have affect) >>> then 3s when there is no data matrix on picture and about 1.5s when >>> datamatrix is detected. On macbook (2.4Ghz) it takes about 30ms on >>> picture with same resolution. And surprised me that when I tried to >>> capture image 200x200px instead of 300x300px it didn't improve >>> performance - or at least no significantly (I will test this more >>> tomorrow). I would expect that it will need only half of time when >>> area is half. >>> >>> According to time profiler in xcode are following methods most time consuming: >>> FindBestSolidLine - 19% >>> dmtxMatrix3VMultiply - 18.5% >>> ReadModuleColor - 14.3 % >>> >>> And I tried these tests with 'Release' profile in xcode which gives >>> best performance. >>> >>> Have anyone idea how can I tweak performance little bit? Has anyone >>> tried libdmtx on iPhone? >>> >>> Thanks! >>> >>> regards >>> Jarda >>> >>> ------------------------------------------------------------------------------ >>> Protect Your Site and Customers from Malware Attacks >>> Learn about various malware tactics and how to avoid them. Understand >>> malware threats, the impact they can have on your business, and how you >>> can protect your company and customers by using code signing. >>> http://p.sf.net/sfu/oracle-sfdevnl >>> _______________________________________________ >>> libdmtx-development mailing list >>> lib...@li... >>> https://lists.sourceforge.net/lists/listinfo/libdmtx-development >> >> >> >> ------------------------------------------------------------------------------ >> Protect Your Site and Customers from Malware Attacks >> Learn about various malware tactics and how to avoid them. Understand >> malware threats, the impact they can have on your business, and how you >> can protect your company and customers by using code signing. >> http://p.sf.net/sfu/oracle-sfdevnl >> _______________________________________________ >> libdmtx-development mailing list >> lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libdmtx-development >> > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > |
|
From: Alex C. <ale...@ne...> - 2011-01-19 04:13:00
|
With Android phones, I found that color conversion may take too much time. The "natural" format of preview picture on Android is YUV 4:2:0, which means you can simply consider it as grayscale (8 bpp). Working with grayscale instead of RGB helped us a lot. On the other hand, 2 sec is a reasonable time in our scenarios (we are working with VGA resolution usually, 640x480). Anyway, it is important to set a low timeout, as you already discovered. Why spend much time looking for the matrix on the current preview if maybe it will be easily detected on the next preview frame? Cheers, Alex On Wed, Jan 19, 2011 at 3:20 AM, Evan Nemerson <li...@co...> wrote: > I don't have any experience with the iPhone, or Apple development in > general, but most Linux distributions will use -O2 by default and my > guess is that this is what Xcode's release profile does. In the case of > libdmtx, however, using -O3 makes a *huge* difference, and I haven't > seen any errors. I've tried this on Linux AMD64, x86, and ARM. > > -Evan > > > > I haven't tried libdmtx on an iPhone (or xcode), but I have done a bit > of investigation of performance elsewhere. Most distributions > > On Tue, 2011-01-18 at 17:59 +0000, Jarda Kotesovec wrote: >> Hi >> >> I am experimenting with libdmtx on iPhone 3GS. I get image from video >> stream and then I pass it to libdmtx to recognise it and if it is not >> recognised I capture another image and so on. It works good - it reads >> quite small data matrix codes (about 8mm wide). I use timeout option >> to don't get stucked for long time when there is no data matrix on >> picture. >> >> Most time consuming is finding data matrix in picture >> (dmtxRegionFindNext(dmtxDecode, &timeout) ); >> - I can't get better time (setting lower timeout doesn't have affect) >> then 3s when there is no data matrix on picture and about 1.5s when >> datamatrix is detected. On macbook (2.4Ghz) it takes about 30ms on >> picture with same resolution. And surprised me that when I tried to >> capture image 200x200px instead of 300x300px it didn't improve >> performance - or at least no significantly (I will test this more >> tomorrow). I would expect that it will need only half of time when >> area is half. >> >> According to time profiler in xcode are following methods most time consuming: >> FindBestSolidLine - 19% >> dmtxMatrix3VMultiply - 18.5% >> ReadModuleColor - 14.3 % >> >> And I tried these tests with 'Release' profile in xcode which gives >> best performance. >> >> Have anyone idea how can I tweak performance little bit? Has anyone >> tried libdmtx on iPhone? >> >> Thanks! >> >> regards >> Jarda >> >> ------------------------------------------------------------------------------ >> Protect Your Site and Customers from Malware Attacks >> Learn about various malware tactics and how to avoid them. Understand >> malware threats, the impact they can have on your business, and how you >> can protect your company and customers by using code signing. >> http://p.sf.net/sfu/oracle-sfdevnl >> _______________________________________________ >> libdmtx-development mailing list >> lib...@li... >> https://lists.sourceforge.net/lists/listinfo/libdmtx-development > > > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > |
|
From: Evan N. <li...@co...> - 2011-01-18 18:57:33
|
I don't have any experience with the iPhone, or Apple development in general, but most Linux distributions will use -O2 by default and my guess is that this is what Xcode's release profile does. In the case of libdmtx, however, using -O3 makes a *huge* difference, and I haven't seen any errors. I've tried this on Linux AMD64, x86, and ARM. -Evan I haven't tried libdmtx on an iPhone (or xcode), but I have done a bit of investigation of performance elsewhere. Most distributions On Tue, 2011-01-18 at 17:59 +0000, Jarda Kotesovec wrote: > Hi > > I am experimenting with libdmtx on iPhone 3GS. I get image from video > stream and then I pass it to libdmtx to recognise it and if it is not > recognised I capture another image and so on. It works good - it reads > quite small data matrix codes (about 8mm wide). I use timeout option > to don't get stucked for long time when there is no data matrix on > picture. > > Most time consuming is finding data matrix in picture > (dmtxRegionFindNext(dmtxDecode, &timeout) ); > - I can't get better time (setting lower timeout doesn't have affect) > then 3s when there is no data matrix on picture and about 1.5s when > datamatrix is detected. On macbook (2.4Ghz) it takes about 30ms on > picture with same resolution. And surprised me that when I tried to > capture image 200x200px instead of 300x300px it didn't improve > performance - or at least no significantly (I will test this more > tomorrow). I would expect that it will need only half of time when > area is half. > > According to time profiler in xcode are following methods most time consuming: > FindBestSolidLine - 19% > dmtxMatrix3VMultiply - 18.5% > ReadModuleColor - 14.3 % > > And I tried these tests with 'Release' profile in xcode which gives > best performance. > > Have anyone idea how can I tweak performance little bit? Has anyone > tried libdmtx on iPhone? > > Thanks! > > regards > Jarda > > ------------------------------------------------------------------------------ > Protect Your Site and Customers from Malware Attacks > Learn about various malware tactics and how to avoid them. Understand > malware threats, the impact they can have on your business, and how you > can protect your company and customers by using code signing. > http://p.sf.net/sfu/oracle-sfdevnl > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development |
|
From: Jarda K. <jar...@gm...> - 2011-01-18 17:59:42
|
Hi I am experimenting with libdmtx on iPhone 3GS. I get image from video stream and then I pass it to libdmtx to recognise it and if it is not recognised I capture another image and so on. It works good - it reads quite small data matrix codes (about 8mm wide). I use timeout option to don't get stucked for long time when there is no data matrix on picture. Most time consuming is finding data matrix in picture (dmtxRegionFindNext(dmtxDecode, &timeout) ); - I can't get better time (setting lower timeout doesn't have affect) then 3s when there is no data matrix on picture and about 1.5s when datamatrix is detected. On macbook (2.4Ghz) it takes about 30ms on picture with same resolution. And surprised me that when I tried to capture image 200x200px instead of 300x300px it didn't improve performance - or at least no significantly (I will test this more tomorrow). I would expect that it will need only half of time when area is half. According to time profiler in xcode are following methods most time consuming: FindBestSolidLine - 19% dmtxMatrix3VMultiply - 18.5% ReadModuleColor - 14.3 % And I tried these tests with 'Release' profile in xcode which gives best performance. Have anyone idea how can I tweak performance little bit? Has anyone tried libdmtx on iPhone? Thanks! regards Jarda |
|
From: Nick I. <nfi...@nf...> - 2010-08-10 14:44:19
|
On Tue, Aug 10, 2010 at 00:38, Alex Cohn <ale...@ne...> wrote: > Using 8 bpp may help a bit, but not dramatically. What are the > processing times of dmtx for your images? In that case, I probably won't bother. Just testing now: On my preprocessed images (greyscaled, shrunk to ~512x512), about 2s for a hit, and 25s for a miss. On unprocessed images, it takes > 10min (didn't wait around to find out). This is timed on my desktop with an AMD Phenom II X2 550 Processor at 3100MHz and 4GB RAM. However, my production system will likely be a lot leaner (sub-netbook specs; am looking at SheevaPlugs currently). Generally, under 1 minute per image hit or miss is good, under 5 minutes is acceptable. > You have photograhs of different sizes... Are the marker sizes also > very different? Do you have some knowledge regarding the size and > placement of the marker on these images? Do all images have valid > markers, or only some of them? Is it important to identify the marker > on every photo, or it is okey to miss some? The end user (not me) is taking the photographs, and while I can guide them, I don't have absolute control over placement/angle of the markers, and the photos are the sort that you can't exactly go out and take again. I want to limit my assumptions as much as possible. Actually, images containing DM's are rare: 1 in 10 or so. Scanning a non-DM image is very expensive. Ideally, we would never miss a DataMatrix, nor find one where one doesn't exist (haven't encountered this). In my workflow, given the series of photos, if a photo is found to contain a DM, subsequent photos until the next DM are tagged using the DM data. If the program misses a DM, it will get tagged with the previous data, which is fairly bad. > For example, libdmtx allows to define the region where it searches for > the marker. Or limit time for scanning the image - if you know that a > photo either has a noticeable marker, or has no marker at all, you can > set the time limit very low. I will be playing around with the timeout a bit. As I said, I'll be running this with photos of varying size and on hardware of varying capability. Suffice to say, it'll definitely be an option in the config file :) Thanks again, Nick Irvine |
|
From: Alex C. <ale...@ne...> - 2010-08-10 07:38:13
|
Using 8 bpp may help a bit, but not dramatically. What are the processing times of dmtx for your images? You have photograhs of different sizes... Are the marker sizes also very different? Do you have some knowledge regarding the size and placement of the marker on these images? Do all images have valid markers, or only some of them? Is it important to identify the marker on every photo, or it is okey to miss some? For example, libdmtx allows to define the region where it searches for the marker. Or limit time for scanning the image - if you know that a photo either has a noticeable marker, or has no marker at all, you can set the time limit very low. Cheers, Alex On 8/9/10, Nick Irvine <nfi...@nf...> wrote: >> What is your motivation to perform "more advanced scaling algorithm"? >> Do you experience noticeable failures with simple subsampling? > > I'm running dmtx against a batch of images of varying sizes. Using the > shrink option is not ideal in this situation because it shrinks by a > factor, not to a specific size. So if I have very large images mixed > with smaller images, using the same factor on them might yield a 1024px > image and a 128px image. Depending on how the DM is shot, 128px is > probably too small because at that size and using the > "stride-subsampling" (my own term :), you might step past a module > entirely. I think by using a more advanced algorithm, this is less > likely. > > I don't have any data or experience to back this up, only intuition, so > it's possible I'm wrong. > >> The reason I am asking is, I think that with clever scaling you will >> not have better preformance. Converting to grayscale is certainly >> worth it. > > I've divided my process into several phases. Two of these are > preprocessing and scanning with libdmtx. I run the phases in > separate processes, so while one image is being scanned, the next is > being preprocessed. Since the scanning is the time bottleneck, I have > plenty of time to preprocess while waiting for scanning to complete on the > previous image. If I can spend 2 seconds extra in preprocessing to gain > 8 seconds in scanning, it's worth it. The optimum situation would be > where the time taken for preprocessing and scanning would be equal, I > suppose. > > Regarding greyscale: the Python wrapper only allows for RGB/24bpp > formatted pixel data (see my other email from yesterday). So my current > greyscaling technique involves converting from full colour photograph to > greyscale to RGB to work around this. Would it be worth it for me to > add the ability to work in different pixel formats in the wrapper? In > other words, would there be much of a performance gain for libdmtx to > process a 1-channel greyscale image versus a 3-channel one? (I may do > some tests of my own to see, but if anyone has insider knowledge, that'd > be helpful.) > > It's highly possible that I'm falling victim to the old "optimising too > early" problem. :) > > Thanks for your help, > Nick Irvine > |
|
From: Nick I. <nfi...@nf...> - 2010-08-09 17:06:59
|
> What is your motivation to perform "more advanced scaling algorithm"? > Do you experience noticeable failures with simple subsampling? I'm running dmtx against a batch of images of varying sizes. Using the shrink option is not ideal in this situation because it shrinks by a factor, not to a specific size. So if I have very large images mixed with smaller images, using the same factor on them might yield a 1024px image and a 128px image. Depending on how the DM is shot, 128px is probably too small because at that size and using the "stride-subsampling" (my own term :), you might step past a module entirely. I think by using a more advanced algorithm, this is less likely. I don't have any data or experience to back this up, only intuition, so it's possible I'm wrong. > The reason I am asking is, I think that with clever scaling you will > not have better preformance. Converting to grayscale is certainly > worth it. I've divided my process into several phases. Two of these are preprocessing and scanning with libdmtx. I run the phases in separate processes, so while one image is being scanned, the next is being preprocessed. Since the scanning is the time bottleneck, I have plenty of time to preprocess while waiting for scanning to complete on the previous image. If I can spend 2 seconds extra in preprocessing to gain 8 seconds in scanning, it's worth it. The optimum situation would be where the time taken for preprocessing and scanning would be equal, I suppose. Regarding greyscale: the Python wrapper only allows for RGB/24bpp formatted pixel data (see my other email from yesterday). So my current greyscaling technique involves converting from full colour photograph to greyscale to RGB to work around this. Would it be worth it for me to add the ability to work in different pixel formats in the wrapper? In other words, would there be much of a performance gain for libdmtx to process a 1-channel greyscale image versus a 3-channel one? (I may do some tests of my own to see, but if anyone has insider knowledge, that'd be helpful.) It's highly possible that I'm falling victim to the old "optimising too early" problem. :) Thanks for your help, Nick Irvine |
|
From: Alex C. <ale...@ne...> - 2010-08-09 05:58:37
|
Nick, What is your motivation to perform "more advanced scaling algorithm"? Do you experience noticeable failures with simple subsampling? The reason I am asking is, I think that with clever scaling you will not have better preformance. Converting to grayscale is certainly worth it. Sincerely, Alex On Sun, Aug 8, 2010 at 7:44 PM, Nick Irvine <nfi...@nf...> wrote: > I know that you can do some rudimentary preprocessing of images using > options to libdmtx, namely shrinking by a specific factor (using > subsampling). I'm wondering if there are any other preprocessing > techniques I could apply to an image to make it faster for libdmtx to > recognize the DataMatrix. Right now, I'm converting to greyscale and > shrinking to a specific size of 512x512. > > I'm not a computer vision expert by any means, so please keep it Wikipediable :) > > For the curious, I'm analyzing a series of photos using pydmtx and > preprocessing with PIL. They're high-resolution digital photots, so > it think it's better to use a more advanced scaling algorithm than > subsampling. > > Thanks, > Nick Irvine > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > |
|
From: Nick I. <nfi...@nf...> - 2010-08-08 19:25:47
|
Actually, I made the patch myself. (Attached) Thanks for the great work on libdmtx by the way. Nick Irvine On Sun, Aug 8, 2010 at 09:18, Nick Irvine <nfi...@nf...> wrote: > Hi all, > > I've been running up against a problem with pydmtx failing to find a > DataMatrix where dmtxread succeeeds at best, or at worst segfaulting. > I think it's because my image is greyscale, i.e., only one channel. > In fact I'm fairly positive; line 110 in pydmtxmodule.c: > > enc = dmtxEncodeCreate(); > if(enc == NULL) > return NULL; > > dmtxEncodeSetProp(enc, DmtxPropPixelPacking, DmtxPack24bppRGB); //<- this one > dmtxEncodeSetProp(enc, DmtxPropImageFlip, DmtxFlipNone); > > if(scheme != DmtxUndefined) > dmtxEncodeSetProp(enc, DmtxPropScheme, scheme); > > It's not really a bug per se, but it's not documented anywhere as far > as can tell. In fact, I think the documentation for the Python is > kind of shoddy (non-existent?). If someone can confirm this, I'll > trade by writing a patch to add some docstrings and dmtxread/dmtxwrite > shortcut functions :) > > Thanks, > Nick Irvine > |
|
From: Nick I. <nfi...@nf...> - 2010-08-08 16:45:04
|
I know that you can do some rudimentary preprocessing of images using options to libdmtx, namely shrinking by a specific factor (using subsampling). I'm wondering if there are any other preprocessing techniques I could apply to an image to make it faster for libdmtx to recognize the DataMatrix. Right now, I'm converting to greyscale and shrinking to a specific size of 512x512. I'm not a computer vision expert by any means, so please keep it Wikipediable :) For the curious, I'm analyzing a series of photos using pydmtx and preprocessing with PIL. They're high-resolution digital photots, so it think it's better to use a more advanced scaling algorithm than subsampling. Thanks, Nick Irvine |
|
From: Nick I. <nfi...@nf...> - 2010-08-08 16:44:36
|
Hi all,
I've been running up against a problem with pydmtx failing to find a
DataMatrix where dmtxread succeeeds at best, or at worst segfaulting.
I think it's because my image is greyscale, i.e., only one channel.
In fact I'm fairly positive; line 110 in pydmtxmodule.c:
enc = dmtxEncodeCreate();
if(enc == NULL)
return NULL;
dmtxEncodeSetProp(enc, DmtxPropPixelPacking, DmtxPack24bppRGB); //<- this one
dmtxEncodeSetProp(enc, DmtxPropImageFlip, DmtxFlipNone);
if(scheme != DmtxUndefined)
dmtxEncodeSetProp(enc, DmtxPropScheme, scheme);
It's not really a bug per se, but it's not documented anywhere as far
as can tell. In fact, I think the documentation for the Python is
kind of shoddy (non-existent?). If someone can confirm this, I'll
trade by writing a patch to add some docstrings and dmtxread/dmtxwrite
shortcut functions :)
Thanks,
Nick Irvine
|
|
From: Len M. <le...@in...> - 2010-08-03 16:21:59
|
Hi, Attached are 2 proposed patches for the .NET wrapper. decodecallback.patch: If dmtx_decode() detects a region but does not successfully decode it, the decode_result fed into callbackFunc is not fully initialized; this causes trouble in the C# layer when trying to copy the message data (access violation or out-of-memory). It seems the decode callback should only be invoked if the region is successfully decoded. diagnose.patch: The diagnostic image generated by the .NET wrapper does not include the edge detection artifacts provided by dmtxread with the -D option. This patch moves the call to dmtxDecodeCreateDiagnostic() after the region detect loop to fix this. Len |
|
From: Sami R. <sam...@gm...> - 2010-02-18 09:17:37
|
Hello, I'm a developing an iPhone application which should scan barcodes. I would like to use your library with the Cocoa wrapper, but unfortunately, I can't compile the project by simply adding the library folder into my project. Do you think that I should to proceed differently ? Please help that it's urgent... Best regards, Sami Raad |
|
From: Mike L. <mi...@dr...> - 2009-11-19 18:38:44
|
Looks great -- I have applied your diffs to the main SVN trunk as r894. Thanks for the patch! Mike On Wed, Nov 18, 2009 at 9:41 AM, Alastair "Bell" Turner < the...@gm...> wrote: > Hi > > Attached is an svn diff of the changes I made to pydmtxmodule.c to get > the wrapper to handle null bytes in the string to be encoded and the > string passed back from decoding. > > How do I get svn access to commit the changes or what else do I do with > them? > > Bell. > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > libdmtx-development mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libdmtx-development > > -- Mike Laughton Chief Software Architect Dragonfly Logic, Inc. 612.845.3339 (m) |