I assume that the bottleneck comes from the following scenario: The used CPU is an AMD FX-8350 with 8 threads from late 2012. With this method it requires about 3 minutes to transfer all frames.ĭuring the fetching Orthanc needs a decent amount of CPU power. The front-end fetches all frames separately via the cornerstone library cornerstoneWADOImageLoader.Ĭurrently this is done with the DICOMweb REST path: The PhotometricInterpretation is MONOCHROME2. The image data is uncompressed where one pixel has 8 bits. In our case one DICOM file has 256 frames with a resolution of 512 x 885. I use Orthanc via the docker image odogne/orthanc-plugins:1.9.6. I want to decrease the loading time to display a multi-frame dicom. Stat = multi->Save(L"MultiFrame.First of all, thanks for the useful project. GetEncoderClsid(L"image/tiff", &encoderClsid) Initialize the one EncoderParameter object.Į = EncoderSaveFlag Į = EncoderParameterValueTypeLong Į = 1 Į = ¶meterValue one EncoderParameter object in the array. An EncoderParameters object has an array of GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL) INT GetEncoderClsid(const WCHAR* format, CLSID* pClsid) // helper function The main function relies on the helper function GetEncoderClsid, which is shown in Retrieving the Class Identifier for an Encoder. The difference is that the ULONG pointed to by the Value member now contains the value EncoderValueFrameDimensionPage. The second argument passed to the SaveAdd method is the address of the same EncoderParameters object that was used by the Save method. The image in that Image object is added to the multi Image object and is also added to the Multiframe.tif disk file. The first argument passed to the SaveAdd method is the address of an Image object. The code saves the second, third, and fourth pages by calling the SaveAdd method of the multi Image object. The Value member of the EncoderParameter object points to a ULONG that contains the value EncoderValueMultiFrame. The Guid member of that EncoderParameter object is set to EncoderSaveFlag. ![]() The EncoderParameters object has an array that contains a single EncoderParameter object. The third argument passed to the Save method is the address of an EncoderParameters object. That same encoder is used automatically by all subsequent calls to the SaveAdd method of the multi Image object. The second argument passed to the Save method specifies the encoder that will be used to convert the data in the multi Image object to the format (in this case TIFF) required by the disk file. ![]() The first argument passed to the Save method is the name of the disk file that will eventually contain several frames. Note that the code calls Save (not SaveAdd) to save the first page. As the individual pages are added to the multi Image object, they are also added to the disk file Multiframe.tif. At first, multi contains only the image from Shapes.bmp, but eventually it contains all four images. The code first constructs four Image objects: multi, page2, page3, and page4. The images that become the pages of the TIFF file come from four disk files: Shapes.bmp, Cereal.gif, Iron.jpg, and House.png. The following console application creates a TIFF file with four pages. You cannot use SaveAdd to add frames to an animated gif file.
0 Comments
Leave a Reply. |