mitk::ColorBarAnnotation::ColorBarAnnotation() { SetDrawAnnotations(true); SetDrawTickLabels(true); SetOrientationToVertical(); SetMaxNumberOfColors(100); SetNumberOfLabels(4); SetAnnotationTextScaling(false); SetLookupTable(NULL); }
void LabelAttributes::SetFromNode(DataNode *parentNode) { if(parentNode == 0) return; DataNode *searchNode = parentNode->GetNode("LabelAttributes"); if(searchNode == 0) return; DataNode *node; if((node = searchNode->GetNode("varType")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 10) SetVarType(VariableType(ival)); } else if(node->GetNodeType() == STRING_NODE) { VariableType value; if(VariableType_FromString(node->AsString(), value)) SetVarType(value); } } if((node = searchNode->GetNode("legendFlag")) != 0) SetLegendFlag(node->AsBool()); if((node = searchNode->GetNode("showNodes")) != 0) SetShowNodes(node->AsBool()); if((node = searchNode->GetNode("showCells")) != 0) SetShowCells(node->AsBool()); if((node = searchNode->GetNode("restrictNumberOfLabels")) != 0) SetRestrictNumberOfLabels(node->AsBool()); if((node = searchNode->GetNode("drawLabelsFacing")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetDrawLabelsFacing(LabelDrawFacing(ival)); } else if(node->GetNodeType() == STRING_NODE) { LabelDrawFacing value; if(LabelDrawFacing_FromString(node->AsString(), value)) SetDrawLabelsFacing(value); } } if((node = searchNode->GetNode("labelDisplayFormat")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetLabelDisplayFormat(LabelIndexDisplay(ival)); } else if(node->GetNodeType() == STRING_NODE) { LabelIndexDisplay value; if(LabelIndexDisplay_FromString(node->AsString(), value)) SetLabelDisplayFormat(value); } } if((node = searchNode->GetNode("numberOfLabels")) != 0) SetNumberOfLabels(node->AsInt()); if((node = searchNode->GetNode("specifyTextColor1")) != 0) SetSpecifyTextColor1(node->AsBool()); if((node = searchNode->GetNode("textColor1")) != 0) textColor1.SetFromNode(node); if((node = searchNode->GetNode("textHeight1")) != 0) SetTextHeight1(node->AsFloat()); if((node = searchNode->GetNode("specifyTextColor2")) != 0) SetSpecifyTextColor2(node->AsBool()); if((node = searchNode->GetNode("textColor2")) != 0) textColor2.SetFromNode(node); if((node = searchNode->GetNode("textHeight2")) != 0) SetTextHeight2(node->AsFloat()); if((node = searchNode->GetNode("horizontalJustification")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetHorizontalJustification(LabelHorizontalAlignment(ival)); } else if(node->GetNodeType() == STRING_NODE) { LabelHorizontalAlignment value; if(LabelHorizontalAlignment_FromString(node->AsString(), value)) SetHorizontalJustification(value); } } if((node = searchNode->GetNode("verticalJustification")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetVerticalJustification(LabelVerticalAlignment(ival)); } else if(node->GetNodeType() == STRING_NODE) { LabelVerticalAlignment value; if(LabelVerticalAlignment_FromString(node->AsString(), value)) SetVerticalJustification(value); } } if((node = searchNode->GetNode("depthTestMode")) != 0) { // Allow enums to be int or string in the config file if(node->GetNodeType() == INT_NODE) { int ival = node->AsInt(); if(ival >= 0 && ival < 3) SetDepthTestMode(DepthTestMode(ival)); } else if(node->GetNodeType() == STRING_NODE) { DepthTestMode value; if(DepthTestMode_FromString(node->AsString(), value)) SetDepthTestMode(value); } } if((node = searchNode->GetNode("formatTemplate")) != 0) SetFormatTemplate(node->AsString()); }
int main(int, char *[]) { const std::string file = "/home/mathieu/dev/cochleo/share/cochlee.wav"; const audiofile audio(file); filterbank fb(audio.sample_frequency(),100,6000,1000); const auto xaxis = audio.time(); const auto yaxis = fb.center_frequency(); auto cochleo = fb.compute(audio.channel(0)); normalization(cochleo); // Create the color palette auto palette = vtkSmartPointer<vtkLookupTable>::New(); palette->SetTableRange(0.0,1.0); palette->SetHueRange(0.67,0.); palette->SetSaturationRange(0.7,0.3); palette->Build(); // Create a c-style rgb image const std::size_t width = xaxis.size(); const std::size_t height = yaxis.size(); std::vector<unsigned char> cImage(3*width*height); for(std::size_t i=0; i<width; ++i) for(std::size_t j=0; j<height; ++j) { unsigned char* color = palette->MapValue(cochleo[i][j]); cImage[3*(i+width*j)] = color[0]; cImage[3*(i+width*j)+1] = color[1]; cImage[3*(i+width*j)+2] = color[2]; } // Convert the c-style image to a vtkImageData auto imageImport = vtkSmartPointer<vtkImageImport>::New(); imageImport->SetDataSpacing(0.07, 1, 1); imageImport->SetDataOrigin(0, 0, 0); imageImport->SetWholeExtent(0, width-1, 0, height-1, 0, 0); imageImport->SetDataExtentToWholeExtent(); imageImport->SetDataScalarTypeToUnsignedChar(); imageImport->SetNumberOfScalarComponents(3); imageImport->SetImportVoidPointer(cImage.data()); imageImport->Update(); // Create an actor auto actor = vtkSmartPointer<vtkImageActor>::New(); actor->SetInput(imageImport->GetOutput()); // Create a scalar bar auto scalarBar = vtkSmartPointer<vtkScalarBarActor>::New(); scalarBar->SetLookupTable(palette); scalarBar->SetTitle("gain"); scalarBar->SetNumberOfLabels(5); // Configure text of the scalar bar auto textBar = vtkSmartPointer<vtkTextProperty>::New(); textBar->SetFontSize(10); scalarBar->SetTitleTextProperty(textBar); scalarBar->SetLabelTextProperty(textBar); // Setup renderer auto renderer = vtkSmartPointer<vtkRenderer>::New(); renderer->AddActor(actor); renderer->AddActor(scalarBar); renderer->ResetCamera(); // Setup render window auto renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); // Setup render window interactor auto renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); auto style = vtkSmartPointer<vtkInteractorStyleImage>::New(); renderWindowInteractor->SetInteractorStyle(style); // Render and start interaction renderWindowInteractor->SetRenderWindow(renderWindow); renderWindowInteractor->Initialize(); renderWindowInteractor->Start(); return EXIT_SUCCESS; }