bugGNU Octave - Bugs: bug #38087, [octave forge] (image)...


bug #38087: [octave forge] (image) graycomatrix incompatibilities with matlab

Submitted by:  Carnë Draug <carandraug>
Submitted on:  Mon 14 Jan 2013 10:36:25 PM UTC  
Category:  Octave Forge Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Matlab Compatibility
Status:  None Assigned to:  None
Originator Name:  Giorgio Denunzio Open/Closed:  Open
Release:  dev Operating System:  Any

Add a New Comment (Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


Mon 14 Jan 2013 10:36:25 PM UTC, original submission:  

This bug was originally reported on the mailing list by Giorgio Denunzio <giorgio.denunzio@unisalento.it> on 2012/10/21

input parameters:
1) matlab wants vectors, one row for each distance/direction couple, and the necessary  information is a vector with x- and y- components, describing the particular relative-position vector(s) we are interested in  ('Offset' parameter) (no idea if I was clear… perhaps it is better to try matlab help :-)  ; octave wants distinct angles (degrees) and distances:

offsets = [0 1; 0 -1;   -1 1; 1 -1;   -1 0; 1 0;   -1 -1; 1 1];
        % matlab
angles = [6 ; 2 ; 5 ; 1 ; 4 ; 0 ; 3 ; 7] * pi/4;   distances = [1];
     % octave

2) matlab implicitly transforms the input-image bit depth ('NumLevels' parameter), while octave needs that you change it beforehand; matlab wants to know the limits of gray level values ('GrayLimits' parameter), octave does not (I do not know if it assumes the whole range of possible values in accordance with the bit depth, or it calculates min and max from the image data (I suppose the former is correct, but I have not checked yet).
Octave just wants to know how many levels are there (not their values). Anyway I still have to totally verify this. The output is also different because octave gives a 4D matrix (numlevels x numlevels x distances x angles, iirc), while matlab gives a 3D matrix:

    numlevels = 16;
    graylimits = [0, 65535];

    % matlab
    theglcm = graycomatrix(I ,'Offset', offsets, 'NumLevels', numlevels ,
'GrayLimits', graylimits);

    % octave
    IOct = uint16(floor(numlevels*(double(I)/graylimits(2))));    %
diminuish bit depth; I supposed graylimits(1) to be zero.
    theglcm = graycomatrix(IOct, numlevels, distances, angles);
    theglcm = squeeze(theglcm);
    %% This works only because I am working with just one
    %% distance value! Now the output is
    %% numlevels x numlevels x angles like in matlab

Carnë Draug <carandraug>
Project Member


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by jwe (Updated the item)
  • -email is unavailable- added by carandraug (Submitted the item)
  • -email is unavailable- added by carandraug (original bug reporter)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.




    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-08-13 jwe Summaryimage package: graycomatrix incompatibilities with matlab => [octave forge] (image) graycomatrix incompatibilities with matlab
    2013-01-14 carandraug Carbon-Copy- => Added giorgio.denunzio@unisalento.it

    Back to the top

    Powered by Savane 3.7