comparison Framework/Volumes/DicomVolumeImageMPRSlicer.cpp @ 1287:8e82fdc6200e bugs/2020-02-invisible-slice

Heavy (temporary) logging in the path that leads from multiframe volume to slice (rendered texture)
author Benjamin Golinvaux <bgo@osimis.io>
date Fri, 14 Feb 2020 15:00:54 +0100
parents 2d8ab34c8c91
children 343aa1dfaa90
comparison
equal deleted inserted replaced
1286:ddb6676bbcbf 1287:8e82fdc6200e
21 21
22 #include "DicomVolumeImageMPRSlicer.h" 22 #include "DicomVolumeImageMPRSlicer.h"
23 23
24 #include "../StoneException.h" 24 #include "../StoneException.h"
25 25
26 #include "../Toolbox/ImageToolbox.h"
27
26 #include <Core/OrthancException.h> 28 #include <Core/OrthancException.h>
27 //#include <Core/Images/PngWriter.h> 29 //#include <Core/Images/PngWriter.h>
28 #include <Core/Images/JpegWriter.h> 30 #include <Core/Images/JpegWriter.h>
29 31
30 namespace OrthancStone 32 namespace OrthancStone
78 std::auto_ptr<TextureBaseSceneLayer> texture; 80 std::auto_ptr<TextureBaseSceneLayer> texture;
79 81
80 { 82 {
81 const DicomInstanceParameters& parameters = volume_.GetDicomParameters(); 83 const DicomInstanceParameters& parameters = volume_.GetDicomParameters();
82 ImageBuffer3D::SliceReader reader(volume_.GetPixelData(), projection_, sliceIndex_); 84 ImageBuffer3D::SliceReader reader(volume_.GetPixelData(), projection_, sliceIndex_);
85
86 if (OrthancStone_Internals_dump_LoadTexture_histogram == 1)
87 {
88 LOG(ERROR) << "+----------------------------------------+";
89 LOG(ERROR) << "| This is not an error! |";
90 LOG(ERROR) << "+----------------------------------------+";
91 LOG(ERROR) << "Work on the \"invisible slice\" bug";
92 LOG(ERROR) << "InvisibleSlice -- about to dump histogram (100 buckets) for volume_ "
93 << "with OrthancId: " << parameters.GetOrthancInstanceIdentifier()
94 << " and SopInstanceUid: " << parameters.GetSopInstanceUid()
95 << " for projection_ (AxiCorSag): projection_ "
96 << " and slice: " << sliceIndex_;
97
98 HistogramData hd;
99 double minValue = 0;
100 double maxValue = 0;
101 ComputeMinMax(reader.GetAccessor(), minValue, maxValue);
102 double binSize = (maxValue - minValue) * 0.01;
103 ComputeHistogram(reader.GetAccessor(), hd, binSize);
104 std::string s;
105 DumpHistogramResult(s, hd);
106 LOG(ERROR) << s;
107 LOG(ERROR) << "+----------------------------------------+";
108 LOG(ERROR) << "| end of debug dump |";
109 LOG(ERROR) << "+----------------------------------------+";
110 }
111
83 texture.reset(dynamic_cast<TextureBaseSceneLayer*> 112 texture.reset(dynamic_cast<TextureBaseSceneLayer*>
84 (configurator->CreateTextureFromDicom(reader.GetAccessor(), parameters))); 113 (configurator->CreateTextureFromDicom(reader.GetAccessor(), parameters)));
85 114
86 // <DEBUG-BLOCK> 115 // <DEBUG-BLOCK>
87 #if 0 116 #if 0