From: taylorius b. <tay...@ho...> - 2002-06-17 11:08:32
|
Hi, does anybody know the whereabouts of the file TriTensorCompute.cxx ?? The header file is there sure enough, but no sign of the implementation file. Thanks in advance for any help. Matt Taylor _________________________________________________________________ Join the worlds largest e-mail service with MSN Hotmail. http://www.hotmail.com |
From: Bettini <ms...@ti...> - 2003-02-03 16:34:17
|
Hi users, does anyone know, or has anyone realized a function-operator to make the same element-by-element operations between matrices (i.e. multiplication, division,...), as efficient in terms of velocity of execution as in Matlab? I used a function-operator based on two for-cicles: inline void mul_dot(vnl_matrix<double> &A, vnl_matrix<double> &B, vnl_matrix<double> &temp,const int &dim){ unsigned int j; for(unsigned int i=0; i<dim; i++){ for(j=0; j<dim; j++) temp(i,j)=A(i,j)*B(i,j); } } but it takes more time to run than the Matlab version. Second question: I'm working on 3D matrices (the structure is a vcl_vector of vnl_matrix), but I have a problem of memory (stack error) in running the algorithm when the 3D matrices have to many rows or columns (I need 100x100x90 matrices). Does anyone know why? And does anyone know a solution? Thanks |
From: Geoffrey C. <ge...@cr...> - 2003-02-03 17:00:46
|
What sizes are A and B? Matlab has various specializations for small / sparse / non-double matrices, but aside from that I don't see how matlab could do it any faster than vnl. Geoff. > -----Original Message----- > From: vxl...@li... [mailto:vxl-users- > ad...@li...] On Behalf Of Bettini > Sent: Monday, February 03, 2003 4:35 PM > To: vxl...@li... > Subject: [Vxl-users] (no subject) >=20 > Hi users, >=20 > does anyone know, or has anyone realized a function-operator to make = the > same element-by-element operations between matrices (i.e. = multiplication, > division,...), as efficient in terms of velocity of execution as in > Matlab? > I used a function-operator based on two for-cicles: >=20 > inline void mul_dot(vnl_matrix<double> &A, vnl_matrix<double> &B, > vnl_matrix<double> &temp,const int &dim){ > unsigned int j; > for(unsigned int i=3D0; i<dim; i++){ > for(j=3D0; j<dim; j++) temp(i,j)=3DA(i,j)*B(i,j); > } > } >=20 > but it takes more time to run than the Matlab version. >=20 >=20 > Second question: I'm working on 3D matrices (the structure is a = vcl_vector > of vnl_matrix), but I have a problem of memory (stack error) in = running > the > algorithm when the 3D matrices have to many rows or columns (I need > 100x100x90 matrices). Does anyone know why? And does anyone know a > solution? >=20 > Thanks >=20 >=20 >=20 > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Vxl-users mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-users |
From: Peter V. <Pet...@es...> - 2003-02-03 17:10:20
|
> does anyone know, or has anyone realized a function-operator to make the > same element-by-element operations between matrices (i.e. multiplication, > division,...), as efficient in terms of velocity of execution as in Matlab? > I used a function-operator based on two for-cicles: > > inline void mul_dot(vnl_matrix<double> &A, vnl_matrix<double> &B, > vnl_matrix<double> &temp,const int &dim){ > unsigned int j; > for(unsigned int i=0; i<dim; i++){ > for(j=0; j<dim; j++) temp(i,j)=A(i,j)*B(i,j); > } > } I would expect the following to work considerably faster: (not tested, though) T const* a = A.data_block(); T const* b = B.data_block(); T * t = temp.data_block(); for(int i=dim*dim-1; i>=0; --i) t[i]=a[i]*b[i]; -- Peter. |
From: Amitha P. <pe...@cs...> - 2003-02-03 17:15:47
|
On Mon 03 Feb 2003, Bettini wrote: > Hi users, > > does anyone know, or has anyone realized a function-operator to make the > same element-by-element operations between matrices (i.e. multiplication, > division,...), as efficient in terms of velocity of execution as in > Matlab? element_product (defined in vnl_matrix.h), so that vnl_matrix<double> result = element_product( A, B ); would do what you want. > I used a function-operator based on two for-cicles: > > inline void mul_dot(vnl_matrix<double> &A, vnl_matrix<double> &B, > vnl_matrix<double> &temp,const int &dim){ > unsigned int j; > for(unsigned int i=0; i<dim; i++){ > for(j=0; j<dim; j++) temp(i,j)=A(i,j)*B(i,j); > } > } > > but it takes more time to run than the Matlab version. Really? Do you have the optimization flags set for your compiler? A couple of comments: - You don't need to--and shouldn't--pass in the dimensions of the matrix. The matrix already stores that information: A.rows() and A.columns(). - Don't inline this function; the cost of the function call is negligible compared to the cost of multiplying the matrices. (Assuming they are large, as you indicate later.) - If your result matrix is already allocated and this loop is really slower that Matlab, you may want to implement something like the following (untested) void element_multiply( vnl_matrix<double> const& A, vnl_matrix<double> const& B, vnl_matrix<double> & result ) { assert( A.rows() == B.rows() && A.rows() == result.rows() ); assert( A.cols() == B.cols() && A.cols() == result.cols() ); double* pa = A.begin(); double* end = A.end(); double* pb = B.begin(); double* pr = result.begin(); for( ; pa != end; ++pa, ++pb, ++pr ) { *pr = *pa * *pb; } } > Second question: I'm working on 3D matrices (the structure is a vcl_vector > of vnl_matrix), but I have a problem of memory (stack error) in running the > algorithm when the 3D matrices have to many rows or columns (I need > 100x100x90 matrices). Does anyone know why? And does anyone know a > solution? Storing 100x100x90 requires on the order of 8MB of RAM. Unless your machine is really low on memory, this shouldn't be a problem. Perhaps you are having trouble with accessing memory outside of the matrix (i.e. indexing greater than the size of the matrix)? Or else you are copying around this vector when it may be better to pass by const reference? It is hard to diagnose. Hope this helps. Cheers, Amitha. |
From: Ian S. <ian...@st...> - 2003-02-03 17:32:00
|
> division,...), as efficient in terms of velocity of execution > as in Matlab? Our experiments show that using gcc -O3 -march=pentium4 -mfpmath=sse -DNDEBUG on a Pentium4 gives similar or better performance to matlab, on simple maths operations. In terms of code, you could speed up your operation as follows // assume sizes are equal vnl_c_vector<double>::multiply(A.data_block(), B.data_block(), temp.data_block(), A.size()); > Second question: I'm working on 3D matrices (the structure is > a vcl_vector > of vnl_matrix), but I have a problem of memory (stack error) > in running the There are no known problems with vcl_vector<vnl_matrix<T> >. If you me a small example program that fails, I can incorporate it into the tests, and the maintainers will be able to fix it. Ian. |
From: xiaowen y. <yin...@ya...> - 2004-05-05 21:44:39
|
Hi vxl experts, I am a new user of vxl. I used Cmake to create a VC6.0 project with "BUILD_SHAREDLIBRARY" ON. But when I compile "ALL_BUILD" project, it gives message "cannot open vcl.lib". How can I build the needed .lib first ? Another question is: can I use generated project to create a relevant .dll for use in my other VC6.0 project ? Thanks for your help Gorge Wei --------------------------------- Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs |
From: TAMZITI J. <jam...@cy...> - 2005-01-03 10:59:34
|
Hello everybody and happy new year to you. I would like to know if it is possible to compute world coordinates of an object with the library VXL and witch function does it. Thanks for any help. =20 Tamziti Jamale. |
From: Andrew F. <aw...@ro...> - 2005-01-11 11:25:30
|
Try vul_printf: vul_printf(cerr, "World coordinates of the object are (%.1f,%.1f,%.1f)\n", -17.1, 23.2, 0.07); |
From: Ian S. <ian...@st...> - 2005-01-11 11:32:19
|
******* MODERATOR COMMENT Sorry about the delay in approving your message. The large amounts of HTML, and missing subject header make it look like SPAM. ******* MODERATOR COMMENT TAMZITI Jamale wrote: > I would like to know if it is possible to compute world coordinates of > an object with the library VXL and witch function does it. > What precisely do you want to do? What object? In general going from image co-ordinates to world co-ordinates, is just a matter of applying a transform. The appropriate function depends on the form of your two co-ordinate systems, and your transform. Several libraries can provide help with manipulating transforms and co-ordinates - vgl, vgl_algo, vimt spring immediately to mind. Ian. |
From: <mb...@ci...> - 2006-01-30 15:46:44
|
I am having a problem with the "reserve" method in vbl_array_1d. After using the default constructor, then calling "reserve" to allocate the container, the array remains empty. In particular I am suspicious of the line 95 in version 1.4 and 1.3 of vbl_array_1d.h, which reads: T *new_end_ = new_begin_ + n; I believe it should read T *new_end_ = new_begin_ + new_n; Please let me know if I am mistaken about this. Thank you, Michael Bowers Center for Imaging Science Johns Hopkins University |
From: Peter V. <pet...@ya...> - 2006-02-24 23:09:57
|
> After using the default constructor, then calling "reserve" to > allocate the container, the array remains empty. That is indeed correct behaviour: the container has now storage space, but its (logical) length is still 0. > In particular I am suspicious of the line 95 in vbl_array_1d.h: > T *new_end_ = new_begin_ + n; > I believe it should read > T *new_end_ = new_begin_ + new_n; No, certainly not: this is exactly the reason for the existence of both the alloc_ and end_ data members: alloc_ indicates how much space is allocated, while end_ indicates what is the logical length of the array. For efficiency reasons, when pushing an element to the end of an array, instead of incrementing the storage space by just one element, storage space is doubled every time when storage space equals logical length. -- Peter. |
From: Cem D. <cde...@gm...> - 2007-05-18 10:36:28
|
Hi everyone I've got compilation errors when I try to build vgui library using Qt4. I'd be grateful to anyone who can help resolve these errors produced in the build and compilation of vgui library with Qt4.1.4 Sincerely Cem DEMiRKIR My system settings: ------------------------------ XP SP2 MSVS2005, VC++ 8 VXL library version : updated with current CVS My buid output log : ------------------------------ ------ Build started: Project: vgui, Configuration: Debug Win32 ------ Compiling... moc_vgui_qt_menu.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' moc_vgui_qt_dialog_impl.cxx c:\libraries\vxl\vxl\bin\core\vgui\../../../core/vgui/impl/qt4/vgui_qt_dialog_impl.h(52) : fatal error C1083: Cannot open include file: 'q3hgroupbox.h': No such file or directory moc_vgui_qt_adaptor.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' vgui_qt_menu.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' vgui_qt_dialog_impl.cxx c:\libraries\vxl\vxl\core\vgui\impl\qt4\vgui_qt_dialog_impl.h(52) : fatal error C1083: Cannot open include file: 'q3hgroupbox.h': No such file or directory vgui_qt_adaptor.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' vgui_qt_window.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' ..\..\..\core\vgui\impl\qt4\vgui_qt_window.cxx(11) : fatal error C1083: Cannot open include file: 'q3vgroupbox.h': No such file or directory vgui_qt.cxx c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(845) : error C2244: 'QMultiMap<Key,T>::replace' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(830) : see declaration of 'QMultiMap<Key,T>::replace' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)' c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(849) : error C2244: 'QMultiMap<Key,T>::insert' : unable to match function definition to an existing declaration c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qmap.h(831) : see declaration of 'QMultiMap<Key,T>::insert' definition 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' existing declarations 'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)' c:\libraries\vxl\vxl\core\vgui\impl\qt4\vgui_qt_dialog_impl.h(52) : fatal error C1083: Cannot open include file: 'q3hgroupbox.h': No such file or directory Generating Code... Build log was saved at "file://c:\Libraries\VXL\vxl\bin\core\vgui\vgui.dir\Debug\BuildLog.htm" vgui - 16 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ========== |
From: Christoph J. <Chr...@gm...> - 2007-07-01 14:31:24
|
Hello, seems I posted to the wrong address last time. Sorry if you get it twice now Amitha. I assume the same like Brendon. the error in line > > vgui_qt_adaptor: no direct rendering seems to say that you are currently not using hardware accelerated rendering. Qt rendering depends on opengl support. Probably your system configuration is wrong. I cannot give a special hint because configuration depends on the graphics cards and driver you are using. If you use nvidias driver try out glxinfo | grep direct in a console to see if your card config is right and direct rendering is supported. One more thing to mention, if you are using compiz or another fancy window manager it could be that you are using hardware already but qt simply cant detect it because the x-server says there is no hardware acceleration. This should be the case if you are using xgl only. I would recommand to switch to NV-GLX for nvidia or aiglx for ati cards in that case. In the ati case I am not completely shure because I simply never had an ati card. Cheers Christoph -- Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer |
From: Jochen F. <Fra...@gm...> - 2009-12-07 14:28:27
|
Hi all, I'm using the VIL-Part of the VXL-library, but I have a question about the "vil_blocked_image_resource_sptr::put_block(...)" method. I want to write a huge image so I use the blocked-image-resource. But everytime when I call the "vil_blocked_image_resource_sptr::put_block(...)" with my generated image-view, the program allocates more and more memory and after some "put_block"-calls my program crashes. I checked my code, but I didn't see any memory leaks. So, has someone experience with this? Can someone tell me, what could be the reason for this behavior? Ciao Jochen -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 |
From: Vanessa O. <van...@ho...> - 2011-07-13 17:34:46
|
Dont laugh! It helps!... http://www.fulldigital.es/sites.friend.php?nhot=83me4 |
From: Hao W. <hao...@gm...> - 2017-11-09 09:37:00
|
Hi Vxl http://bit.ly/2ztfCFB Hao Wu |
From: Peter V. <Pet...@es...> - 2002-06-17 18:47:41
|
> Hi, does anybody know the whereabouts of the file > TriTensorCompute.cxx ?? It seems that this file never got ported from TargetJr's MultiView/MViewCompute/TriTensorCompute.C Apparently because also the required classes HomgMatchLineSeg2D2D2D and HomgMatchPoint2D2D2D never got ported. I'll have a try at porting TriTensorCompute.cxx, but it will not be functional without those other classes. Peter. |
From: Peter V. <Pet...@es...> - 2002-06-17 18:58:00
|
Done. Unfortunately there seems to be not very much "meat" inside that implementation... Peter. |