help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How do I read an image into octave?


From: etienne grossmann
Subject: Re: How do I read an image into octave?
Date: Sat, 11 Dec 1999 11:53:33 +0000 (WET)


  Hello

# I've just successfully compiled octave under linux; I'd like to use it

  Hurra!

# to test some image processing algorithms.  But according to the info
# pages, images must be in octave's "img" format.  This is all very
# well, but how do I get a pgm/tif/gif/png image into that format?  Are
# there any file handling routines which will take, say, a 256 grey level
# pgm image and produce a matrix in octave?

# In other word, is there an octave equivalent to MATLAB's "imread"
# command?

  Not that I know of. I am sending you at the end of this mail two
functions : "loadpgm.m" and "savepgm.m". I also have a tentative
"saveppm.m" (I don't really know how ppm's are coded, but it seems to
work). I know, this is not the right list for code, but maybe Alasdair
doesn't subscribe to octave-source.

  If you're interested, I wrote a "bwlabel.m" function (finds
disctinct connex regions in a 0-1 image) and a "bwborder.m" function
(finds the border of regions in a 0-1 image).

  These little functions are quite useful, but not a substitute for
general image loading/writing/manipulating tools. With a good amount
of work, it should be possible to glue an image library onto
octave. That would require learning a good deal of octave internals
(I've chickened out of "liboctave") and the interface to, say,
"imlib", "the gimp" or some other image tool.


  Cheers,

  Etienne



--[[application/octet-stream
Content-Disposition: attachment; filename="loadpgm.m"][base64]]
ZnVuY3Rpb24gaW0gPSBsb2FkcGdtKGltbmFtZSkKCiMjIEkgc3VwcG9zZSBQR00gZmlsZXMg
aGF2ZSBmb3JtYXQKIyMKIyMgUDU8bmV3bGluZT4KIyMgPG9wdGlvbmFsIGNvbW1lbnQ+PG5l
d2xpbmU+CiMjIDxudW1iZXI+PHNlcGFyYXRhdG9yPgojIyA8bnVtYmVyPjxzZXBhcmF0YXRv
cj4KIyMgPG51bWJlcj48c2VwYXJhdGF0b3I+CiMjIDxpbWFnZSBkYXRhPgojIwojIyBJcyB0
aGF0IGNvcnJlY3Q/IAojIyA8c2VwYXJhdG9yPiA9IHNwYWNlIG9yIG5ld2xpbmUKIyMgVGhl
IHRocmVlIG51bWJlcnMgYXJlIHdpZHRoLCBoZWlnaHQgYW5kIGdyZXlsZXZlbHMuIFRoZSB0
aGlyZAojIyBudW1iZXIgaXMgYXNzdW1lZCB0byBiZSAyNTUKCltmaWQsbXNnXT0gZm9wZW4o
aW1uYW1lLCJyIik7CgppbSA9IG5hbjsKCmlmIGZpZCA9PSAtMSAsCiAgcHJpbnRmKCJsb2Fk
cGdtIDogY2Fubm90IG9wZW4gXCIlc1wiXG4iLGltbmFtZSkgOwogIHJldHVybgplbmQKCgpb
ZGF0YSwgY291bnRdID0gZnJlYWQgKGZpZCkgOwkjIFJlYWQgdGhlIHdob2xlIGZpbGUKZmNs
b3NlKGZpZCkgOwkJCSMgQ2xvc2UgdGhlIGZpbGUKCmVvbGluID0gIFswLGZpbmQoIGRhdGEg
PT0gMTAgKSddIDsKIyMgU2VwYXIgaXMgbXVjaCBiaWdnZXIgdGhhbiBJIG5lZWQgLi4uCnNl
cGFyID0gIFswLGZpbmQoIGRhdGEgPT0gMTAgfCBkYXRhID09IDMyICknXSA7CmlmIGxlbmd0
aChzZXBhcik9PTEsCiAgcHJpbnRmKCJsb2FkcGdtIDogZmlsZSAlcyBpcyBub3QgaW4gcGdt
IGZvcm1hdFxuIixpbW5hbWUpIDsKICByZXR1cm4KZW5kCmxpbmNudCA9IDEgOwkJCSMgTGlu
ZSBhbmQgc2VwYXJhdG9yIGNvdW50ZXJzCnNlcGNudCA9IDEgOwoKCQkJCSMgUmVhZCBmaXJz
dCBsaW5lCmZpcnN0bGluZSA9IHNldHN0cihkYXRhKHNlcGFyKHNlcGNudCkrMTpzZXBhcihz
ZXBjbnQrMSktMSkpJyA7CgoJCQkJIyBDaGVjayBmb3IgUDUKaWYgISBzdHJjbXAoIGZpcnN0
bGluZSgxOjIpICwgIlA1IiApICwKICBwcmludGYoImxvYWRwZ20gOiBmaWxlICVzIGlzIG5v
dCBpbiB0aGUgcmlnaHQgcGdtIGZvcm1hdFxuIixpbW5hbWUpIDsKICBwcmludGYoIiAgIGxv
YWRwZ20gb25seSByZWFkcyBQNVxuIikgOwogIHJldHVybgplbmQKc2VwY250KysgOwoKCQkJ
CSMgU2V0IHRoZXNlIHZhcmlhYmxlcyA6IAoJCQkJIyB3aWR0aCwgaGVpZ2h0LCBudW1iZXIg
b2YgZ3JleWxldmVscy4gCnZhcm5hbWVzID0gWyJpbXciOyJpbWgiOyJpbWwiXSA7CmZvciBp
ID0gMTpzaXplKHZhcm5hbWVzLDEpICwKICBmaXJzdGxpbmUgPSBzZXRzdHIoZGF0YShzZXBh
cihzZXBjbnQpKzE6c2VwYXIoc2VwY250KzEpLTEpKScgOwogIHNlcGNudCsrIDsKCQkJCSMg
U2tpcCBjb21tZW50cwogIHdoaWxlIHRvYXNjaWkoZmlyc3RsaW5lKDEpKSA9PSAzNSAsICMg
MzUgPT0gdG9hc2NpaSgiIyIpCiAgICBsaW5jbnQgPSBtaW4oIGZpbmQoIGVvbGluID4gc2Vw
YXIoc2VwY250KSsxICkgKSA7ICMgTmV4dCBsaW5lCiAgICAKICAgICMjIFRoaXMgc2VlbXMg
dG8gd29yayB0b28uIE1heWJlIGl0J3Mgb25seSBpbiAyLjEuWFgKICAgICMjIGxpbjIgPSBm
aW5kKCBlb2xpbiA+IHNlcGFyKHNlcGNudCkrMSApKDEpICA7ICMgTmV4dCBsaW5lOwogICAg
IyMgaWYgbGluY250IT1saW4yLCBwcmludGYoIldob2EhISBCYWQgdHJ5ICgxKVxuIik7IGVu
ZAogICAgCiAgICAjIyBJIHdpc2ggSSBjb3VuZCB1c2UgImluZGV4IiAKICAgICMjIGxpbjIg
PSBpbmRleCggZW9saW4gPiBzZXBhcihzZXBjbnQpKzEsIDEgKTsKICAgICMjIGlmIGxpbmNu
dCE9bGluMiwgcHJpbnRmKCJXaG9hISEgQmFkIHRyeSAoMSlcbiIpOyBlbmQKCiAgICBzZXBj
bnQgPSBtaW4oIGZpbmQoIHNlcGFyID49IGVvbGluKGxpbmNudCkgKSApICA7ICMgTmV4dCBz
ZXAKCiAgICAjIyBzZXAyID0gaW5kZXgoIGVvc2VwID49IGVvbGluKGxpbmNudCkrMSwgMSAp
OwogICAgIyMgaWYgc2VwY250IT1zZXAyLCBwcmludGYoIldob2EhISBCYWQgdHJ5ICgyKVxu
Iik7IGVuZAoKICAgIGZpcnN0bGluZSA9IHNldHN0cihkYXRhKHNlcGFyKHNlcGNudCkrMTpz
ZXBhcihzZXBjbnQrMSktMSkpJyA7CiAgICBzZXBjbnQrKyA7CiAgZW5kCiAgZXZhbCggc3By
aW50ZigiJXM9JXM7Iix2YXJuYW1lcyhpLDopLGZpcnN0bGluZSApICkgOwplbmQKCmltID0g
cmVzaGFwZSggZGF0YSggc2VwYXIoc2VwY250KSsxOmxlbmd0aCggZGF0YSApKSwgaW13LGlt
aCApIDsKIyMga2V5Ym9hcmQK
--[[application/octet-stream
Content-Disposition: attachment; filename="savepgm.m"][base64]]
IyMgICAgICAgc2F2ZXBnbShmbmFtZSxpbSkKIyMKIyMgU2F2ZXMgaW1hZ2UgImltIiBpbiBm
aWxlICJmbmFtZSIgaW4gUEdNIGJpbmFyeSBmb3JtYXQuCmZ1bmN0aW9uIHNhdmVwZ20oZm5h
bWUsaW0pCgogIApbZmlkLG1zZ10gPSBmb3BlbihmbmFtZSwidyIpOwkJCQkjIFNhdmluZy4K
aWYgZmlkID09IC0xICwgCiAgZXJyb3Ioc3ByaW50ZigidW5hYmxlIHRvIG9wZW4gJXNcbkVy
cm9yIG1zZyBpcyA6JXMiLGZuYW1lLG1zZykpOwplbmQKCltoLHddPXNpemUoaW0pOwoKZnBy
aW50ZihmaWQsIlA1XG4jIENyZWF0b3Igb2N0YXZlLHNhdmVwZ20ubVxuJWQgJWRcbjI1NVxu
Iix3LGgpOwpjb3VudCA9IGZ3cml0ZSAoZmlkLCBpbScgKTsKZmNsb3NlKGZpZCk7



-----------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.che.wisc.edu/octave/octave.html
How to fund new projects:  http://www.che.wisc.edu/octave/funding.html
Subscription information:  http://www.che.wisc.edu/octave/archive.html
-----------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]