From: Soumya P <sou...@mi...> - 2005-11-08 12:13:55
Attachments:
disclaimer.txt
|
Hi Ian, Thanks for the reply.=20 Now i have another problem... I need to open a Dicom image in 3D... Dicom 2D image is being opened smoothly... But when it comes to 3D its not working i am using vil3d_load to open 3D image Also how do i open raw image using VXL? Thanks n Regards Soumya -----Original Message----- From: Ian Scott [mailto:ian...@st...] Sent: Tuesday, November 08, 2005 2:58 PM To: Soumya P Cc: vxl...@li... Subject: Re: [Vxl-users] Regarding vil_save Soumya P wrote: > Hi=20 > I need to save an image as jpeg, pnm ,png, tiff, or dicom. But i am > facing some problems here. Jpeg will accept vxl_byte format only and = hence > information content is lost. Only pnm is working properly. The code = snippet > is given below. Is there any other way of saving an image? >=20 > vil_image_view<vxl_uint_16>* pBaseImage =3D > = (vil_image_view<vxl_uint_16>*)this->vxlConverter.toProprietary(pImage); > vil_image_view<vxl_uint_16> image =3D vil_copy_deep(*pBaseImage); > vil_save(image,pFileName); >=20 Looking at the source (core/vil/file_formats/vil_jpeg.cxx line 112)=20 suggests that the VXL jpeg code doesn't support saving non-byte images.=20 Your options are either to choose a different file format, or fix=20 vil_jpeg.cxx to save non-bytes. We would happily accept a patch for=20 that. It is worth checking that libjpeg supports saving non8-bit images=20 before doing any work on the VXL code. Note that even if vil_jpeg did support saving more that 8-bit images,=20 you would still find that "information content is lost" since jpeg is a=20 lossy format. Finally - for alternative saving methods. If all you want, is to save a=20 VXL image, and then reload it later into VXL, you can use VXL's own=20 serialisation library - vsl. see=20 http://paine.wiau.man.ac.uk/pub/doc_vxl/books/core/book_9.html#SEC87 for = details. Note that vsl's file format is not designed to be readable by=20 anything other than VXL/vsl. Ian. |
From: Ian S. <ian...@st...> - 2005-11-08 13:07:00
|
Soumya P wrote: > What i tried to do with raw image is > spBaseImageraw = vil_load_image_resource_raw(pFileName); > but this is returning a null pointer...... This function name is slightly misleading. It does not load images from the RAW file format. > how do i specify the type and size length to open the raw image... You don't See my previous email and the vil_image_view constructor described at http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vil/html/classvil__image__view.html#vil__image__viewa2. Ian. |
From: Soumya P <sou...@mi...> - 2005-11-09 08:34:22
Attachments:
disclaimer.txt
|
I used this code snippet and tried to open raw image. but it did not work out.. is there any other way to open raw image? vxl_byte image[50*50]; vil_image_view_base* img =3D new vil_image_view<vxl_byte>(image,50,50,1,1,1,1); =09 vil_image_view_base_sptr im_view(img); =09 im_resource_plugin.load_the_image(im_view,pFileName); this->im =3D vil_new_image_resource(im_view->ni(),im_view->nj(), =20 im_view->nplanes(),im_view->pixel_format()); this->im->put_view((const vil_image_view_base&)*im_view,0,0); -----Original Message----- From: Ian Scott [mailto:ian...@st...] Sent: Tuesday, November 08, 2005 6:38 PM To: Soumya P Cc: Vxl-Users Subject: Re: [Vxl-users] Regarding vil_save Soumya P wrote: > What i tried to do with raw image is=20 > spBaseImageraw =3D vil_load_image_resource_raw(pFileName); > but this is returning a null pointer...... This function name is slightly misleading. It does not load images from=20 the RAW file format. > how do i specify the type and size length to open the raw image... You don't See my previous email and the vil_image_view constructor described at=20 http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vil/html/classvil__image__vi= ew.h tml#vil__image__viewa2. Ian. |
From: Ian S. <ian...@st...> - 2005-11-09 09:19:13
|
Soumya P wrote: > I used this code snippet and tried to open raw image. but it did not > work out.. > is there any other way to open raw image? I take it that you have read http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vil/html/classvil__image__view.html http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vil/html/index.html and http://paine.wiau.man.ac.uk/pub/doc_vxl/books/core/book_7.html#SEC63 #include <vcl_fstream.h> #include <vxl_config.h> int main() { vxl_byte * image_data = new vxl_byte[50*50]; // vil provides no system for handling RAW file format. // fill image_data with raw data yourself { vcl_ifstream file("filename.raw",vcl_ios_binary); file.read(reinterpret_cast<char *>(image_data), 50*50); } //Read up on what istep and jstep do. //Warp a vil_image_view around image_data //Assume that the data is organised raster-wise vil_image_view<vxl_byte> image(image_data,50,50,1,50,1,1); //Thats it. //image is now a view onto your image_data. //so. vcl_cout << image(24,24); // will print a pixel next to the middle of the image. delete image_data[]; return 0; } There is no reason to use any image_resource, vil_image_view_base or vil_image_view_base_sptr stuff. These are all advanced things for solving specific problems. Randomly using such functions and classes is unlikely to work. Ian. > -----Original Message----- > From: Ian Scott [mailto:ian...@st...] > Sent: Tuesday, November 08, 2005 6:38 PM > To: Soumya P > Cc: Vxl-Users > Subject: Re: [Vxl-users] Regarding vil_save > > > Soumya P wrote: > >>What i tried to do with raw image is >>spBaseImageraw = vil_load_image_resource_raw(pFileName); >>but this is returning a null pointer...... > > > This function name is slightly misleading. It does not load images from > the RAW file format. > > > >>how do i specify the type and size length to open the raw image... > > You don't > > See my previous email and the vil_image_view constructor described at > http://paine.wiau.man.ac.uk/pub/doc_vxl/core/vil/html/classvil__image__view.h > tml#vil__image__viewa2. > > Ian. > |
From: Ian S. <ian...@st...> - 2005-11-08 12:21:06
|
Soumya P wrote: > Hi Ian, > Thanks for the reply. > Now i have another problem... I need to open a Dicom image in 3D... > Dicom 2D image is being opened smoothly... > But when it comes to 3D its not working > > i am using vil3d_load to open 3D image How do you mean not working? Please be specific. Details of the dicom image are also useful. One issue - if you have one of the newer single file 3D dicom images (rather than the more usual list of 2D slice files), then vil3d doesn't support that yet. Patches to vil3d are most welcome. > > Also how do i open raw image using VXL? You can load the data into memory, and then wrap a vil_image_view<> around it with the appropriate type, sizes and step lengths. Ian. |