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


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

Submitter:  Carnë Draug <carandraug>
Submitted:  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
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment (Rich Markup)

Comment Type & Canned Response:


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)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    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 -email is unavailable-

    Back to the top

    Powered by Savane 3.9