Re: zigzag scan: Image processing function

"Fredrik Bülow" <[email protected]> Fri, 6 Oct 2006 16:40:49 +0200
Newsgroups gmane.comp.gnu.octave.sources
Message-ID <[email protected]>
------=_Part_7795_33412387.1160145649603
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi Muthiah!

I took the liberty of writing my own quicker version of zigzag.  I've
also added support for mxn matrices (where m!=3Dn).

Code is attached.

Cheers
Fredrik B=FClow

On 10/5/06, Muthiah Annamalai <[email protected]> wrote:
>
>  Hello there,
>  I have a function zigzag() which walks-off a (square)matrix and reads it=
s
> elements in a zigzag fashion. It is useful for image processing.
>
>  Example:
>  octave  --eval
> "x=3D[1:4]'*[1:4];eval('x');tic;printf('%d\n',zigzagscan(x));toc()"
> -q
>  x =3D
>
>      1    2    3    4
>      2    4    6    8
>      3    6    9   12
>      4    8   12   16
>
>  1
>  2
>  2
>  3
>  4
>  3
>  4
>  6
>  6
>  4
>  8
>  9
>  8
>  12
>  12
>  16
>  Elapsed time is 0.177223 seconds.
>
>
>  However I dont know where I should commit it to in Octave-forge.
>  Someone please suggest the right place.
>
>  Code is attached.
>
>  Cheers
>  Muthu
>
>
> _______________________________________________
> Octave-sources mailing list
> [email protected]
> https://www.cae.wisc.edu/mailman/listinfo/octave-sources
>
>
>
>

------=_Part_7795_33412387.1160145649603
Content-Type: text/x-objcsrc; name=my_zigzag.m; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_esyo6ppz
Content-Disposition: attachment; filename="my_zigzag.m"

IyMgQ29weXJpZ2h0IChDKSAyMDA2LCBPY3RvYmVyLCBGcmVkcmlrIEJ1bG93LCA8ZnJlZHJpay5i
dWxvd0BnbWFpbC5jb20+CiMjCiMjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMjIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yCiMjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMjCiMjIFRoaXMgcHJv
Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAoj
IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgojIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlCiMjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCiMjCiMjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIyMKCgoKZnVu
Y3Rpb24gcnZhbCA9IG15X3ppZ3phZyhtdHJ4KQogIG49c2l6ZShtdHJ4KTsKCiAgaWYoaXNzcXVh
cmUobXRyeCkpICNTcXVhcmUgbWF0cml4IChxdWljayBjYXNlKQoKICAgICMjV2UgY3JlYXRlIGEg
bWF0cml4IG9mIHRoZSBzYW1lIHNpemUgYXMgbXRyeCB3aGVyZSBvZGQgZWxlbWVudHMgYXJlCiAg
ICAjIzEsIG90aGVycyAwLgogICAgb2RkPWtyb24ob25lcyhjZWlsKG4vMikpLGV5ZSgyKSkoKDE6
bigxKSksKDE6bigyKSkpOwoKICAgICMjV2UgdHJhbnNwb3NlIGV2ZW4gZWxlbWVudHMgb25seS4K
ICAgIG10cnggPSBtdHJ4LipvZGQgKyAobXRyeC4qKDEtb2RkKSknOwoKICAgICMjTm93IHdlIG1p
cnJvciB0aGUgbWF0cml4LiBUaGUgZGVzaXJlZCB2ZWN0b3IgaXMgbm93IHRoZQogICAgIyNjb25j
YXRlbmF0aW9uIG9mIHRoZSBkaWFnb25hbHMuCiAgICBtdHJ4PW10cngoOiwxK3NpemUobXRyeCwy
KS0oMTpzaXplKG10cngsMikpKTsKCiAgICAjI1BpY2tpbmcgb3V0IHRoZSBkaWFnb25hbHMuCiAg
ICBydmFsICA9IFtdOwogICAgZm9yIGkgPSBuKDIpLTE6LTE6MS1uKDEpCiAgICAgIHJ2YWw9W3J2
YWwgZGlhZyhtdHJ4LGkpJ107CiAgICBlbmRmb3IKCiAgZWxzZSAjTm90IHNxdWFyZSAoU2xvdyBj
YXNlcykKICAgIG10cng9bXRyeCg6LDErc2l6ZShtdHJ4LDIpLSgxOnNpemUobXRyeCwyKSkpOwoK
ICAgICMjUGlja2luZyBvdXQgdGhlIGRpYWdvbmFscyBhbmQgcmV2ZXJzaW5nIG9kZCBvbmVzIG1h
bnVhbGx5LgogICAgcnZhbCAgPSBbXTsKICAgIGZvciBpID0gbigyKS0xOi0xOjEtbigxKQogICAg
ICBuZXcgPSBkaWFnKG10cngsaSk7CiAgICAgIGlmKGZsb29yKGkvMik9PWkvMikgIyNFdmVuPwoJ
cnZhbD1bcnZhbCBuZXcnXTsKICAgICAgZWxzZSAgICAgICAgICAgICAgICAjI09kZCEKCXJ2YWw9
W3J2YWwgbmV3KCgxK2xlbmd0aChuZXcpKS0oMTpsZW5ndGgobmV3KSkpJ107CiAgICAgIGVuZGlm
CiAgICBlbmRmb3IKICBlbmRpZgplbmRmdW5jdGlvbgoKCgo=
------=_Part_7795_33412387.1160145649603
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Octave-sources mailing list
[email protected]
https://www.cae.wisc.edu/mailman/listinfo/octave-sources

------=_Part_7795_33412387.1160145649603--