![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Actually you could do better. You could search around for a rectangular
> area of white with black stuff inside it, try to figure out the
> orientation of its edges, and then skim a line across the line edge.
> It's kinda tricky though...
Why bother?
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> Actually you could do better. You could search around for a
>> rectangular area of white with black stuff inside it, try to figure
>> out the orientation of its edges, and then skim a line across the line
>> edge. It's kinda tricky though...
>
> Why bother?
Well, true. I guess we're all going to die anyway, so...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible schrieb:
>>> 8. If you're using a 2D *camera* instead of a real laser barcode
>>> scanner, multiply all of the above issues by 7.
>>
>> Not really. Just pick a random straight line through the picture, and
>> pretend that's your laser beam.
>
> Except that a human wouldn't aim the laser beam at random, see? Also, as
> I understand it, lasers don't go out of focus...
A human wouldn't aim a camera at random either. And as for the focus
thing, just use an auto-focusing camera and you're there.
Of course, if you want to make the /most/ out of a camera-based device,
to actually unleash all the advantages a camera potentially has over a
laser-based device - now that's a totally different story...
... but in that case you'd use 2D barcodes anyway :-)
There are matrix barcodes out there that I'd expect to be particularly
easy to use in this sort of application, featuring "bull's eye"-like
patterns or the like to faciliate finding the center by basically doing
some simple frequency filtering on the image.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
clipka wrote:
> There are matrix barcodes out there that I'd expect to be particularly
> easy to use in this sort of application, featuring "bull's eye"-like
> patterns or the like to faciliate finding the center by basically doing
> some simple frequency filtering on the image.
Depends which symbiology.
Data Matrix uses black bars along two sides of the rectangle, as does
Semacode. MaxiCode has a "bull's eye" of concentric circles at the
center, while Aztec Code has concentric squares instead. And then QR
Codes have squares on three corners...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> I'm currently writing a small Haskell library for this. Currently it
> understands 2 of 5 standard and interleaved, code 128, and I'm currently
> implementing code 39. Of course, the library only handles converting
> characters into 1s and 0s and back again. In "real" barcode handling
> things are far more complex; bar thicknesses have to be within certain
> tollerances when printing, and scanning is a fairly sophisticated
> problem...
I added a function which spits out a PostScript file containing the
barcode. Printed one out and compared it to a real barcode that encodes
the same messages. It seems the bar thicknesses don't quite match, but
otherwise it's quite similar.
In particular, Code 39 uses thin and thick bars and spaces. On my
barcode, thick is twice the size of thin, but on the real barcode it
seems to be something like 2.5 or something. (Obviously, you can't
easily represent this as a sequence of 1s and 0s. But hey, that's the
Real World for ya...)
I'm almost tempted to see if the reader can actually read my barcode.
Almost.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible schrieb:
> In particular, Code 39 uses thin and thick bars and spaces. On my
> barcode, thick is twice the size of thin, but on the real barcode it
> seems to be something like 2.5 or something. (Obviously, you can't
> easily represent this as a sequence of 1s and 0s. But hey, that's the
> Real World for ya...)
As I mentioned earlier, Code 39 doesn't require a particular
narrow-to-wide ratio. There may be maximum and minimum limits, but
anything in between those is fair game.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Oh, and I finally found out what all those zig-zags are for:
Kewl. I like how MSWord gives you an option to print that on envelopes when
you print envelopes. I wonder if it uses the right barcode for the right
country? I never tried it.
--
Darren New, San Diego CA, USA (PST)
I ordered stamps from Zazzle that read "Place Stamp Here".
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> In particular, Code 39 uses thin and thick bars and spaces. On my
>> barcode, thick is twice the size of thin, but on the real barcode it
>> seems to be something like 2.5 or something. (Obviously, you can't
>> easily represent this as a sequence of 1s and 0s. But hey, that's the
>> Real World for ya...)
>
> As I mentioned earlier, Code 39 doesn't require a particular
> narrow-to-wide ratio. There may be maximum and minimum limits, but
> anything in between those is fair game.
...which is probably why it's been printed at 2.5. That would mean it
definitely falls within the limits, regardless of print tolerence.
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Invisible" <voi### [at] dev null> wrote in message
news:4aeaf3f8$1@news.povray.org...
> Here, have a cookie:
>
> http://www.youtube.com/watch?v=58_s6r7PaKo
>
> This is what happens when you play with a simple non-linear dynamical
> system. (It represents about a day's worth of computer time, BTW.)
I haven't been able to see it yet, unless of course it's 30 seconds of a
black screen with a white caption reading, "an error has occurred, try again
later", or words to that effect. Ah well...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Captain Jack wrote:
> I haven't been able to see it yet, unless of course it's 30 seconds of a
> black screen with a white caption reading, "an error has occurred, try again
> later", or words to that effect. Ah well...
Damn, after this much of a buildup, this is going to be *so* anticlimatic...
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |