Re: [ITK-users] Variable Matrix Access Violiotation

Francois Budin <[email protected]> Mon, 11 Sep 2017 13:56:28 -0400
Newsgroups gmane.comp.lib.itk.user
Message-ID <CAHwLD2Xm8azeWoo-Xdm_nuSfHqtpd5pRVKGE-gB5rogw=hVkPA@mail.gmail.com>
@Brad: I looked in the source code and the types of the column and row size
variables are "unsigned int" which should allow up to 2^32-1 so 4GB, isn't
that correct?

On Mon, Sep 11, 2017 at 1:47 PM, Lowekamp, Bradley (NIH/NLM/LHC) [C] <
blowekamp-2loH/[email protected]> wrote:

> Oh! I think you are experiencing integer overflow with that size of a
> matrix. The value Francois (correctly) computed 3,200,000,000 is ~3GB which
> is greater than numeric_traits<int>::max(), which for 32-bit singed
> integers is 2,147,483,647. The internal implementation of this class is
> vnl_matrix, so the integer limitation lies within that library. So you
> matrix is too big for this library.
>
>
>
> When I looked at this e-mail earlier I miss computed the size, so I didn’t
> realized this problem.
>
>
>
> HTH,
>
> Brad
>
>
>
>
>
> *From: *Francois Budin <[email protected]>
> *Date: *Monday, September 11, 2017 at 1:38 PM
> *To: *Fabian Torres <[email protected]>
> *Cc: *"[email protected]" <[email protected]>
> *Subject: *Re: [ITK-users] Variable Matrix Access Violiotation
>
>
>
> Hello Fabian,
>
> You are most likely allocating more memory than what your computer can
> allocates. If you compute the memory required for your matrix, it will be
> at least:
>
> 8 (long doubles on Visual Studio C++ are the same size as doubles) *
> 2*100*100*2*100*100 = 3 200 000 000 Bytes
>
> This means that you need to have at least that much memory available.
>
> If your computer does not have this amount of memory available, you will
> run into errors.
>
> Hope this helps,
>
> Francois
>
>
>
>
>
> On Wed, Aug 30, 2017 at 12:24 PM, Fabian Torres <[email protected]>
> wrote:
>
> Hi evryone.
>
>
>
> I´m using itk VariableMatrix to do some image processing. But I have some
> problems initializing my matrices.
>
> When I use small sizes like this I do not have any problem
>
>
>
> //matrix A
>
> regionSize[0] = 15;
>
> regionSze[1] = 15;
>
>  VariableSizeMatrix<long double> matA;
>
> matA.SetSize(2*regionSize[0]*regionSize[1],2*regionSize[0]*regionSize[1]);
>
> matA.Fill(0.0);
>
>
>
> But when I use bigger sizes like:
>
>
>
> regionSize[0] = 100;
>
> regionSze[1] = 100;
>
>
>
> I get an Acces Violation exception
>
> Access violation reading location 0xcdcdcdc1.
>
>
>
> I'm using Visualstudio 2008 and ITK 4.4
>
>
>
> Does this has something to do with memory allocation?
>
> Is there a way a could verify if I have enough memory to allocate my
> matrix?
>
>
>
> Thanks.
>
>
>
> --
>
> Fabián Torres Robles
> Maestría en Ciencias en Ingeniería Electrónica
> Ingeniería en Sistemas Electrónicos
> Tel. 58081280, 0445534661338
> E-mail [email protected], [email protected]
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
>
>

_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users