void ImageManager::removeImage(const std::string& imageID) { std::map<std::string, sf::Image>::iterator imageIt(m_images.find(imageID)); if(imageIt == m_images.end()) return; m_images.erase(imageID); }
void ImageManager::clearImages(void) { for(std::map<std::string, sf::Image*>::iterator imageIt(m_images.begin()); imageIt != m_images.end(); imageIt++) { delete imageIt->second; } m_images.clear(); }
const sf::Image& ImageManager::getImage(const std::string& imageID) const { std::map<std::string, sf::Image>::const_iterator imageIt(m_images.find(imageID)); if(imageIt == m_images.end()) { printf("IMAGE \"%s\" NOT FOUND\n", imageID.c_str()); return m_images.at("IMAGENOTFOUND"); } else return imageIt->second; }
sf::Image& ImageManager::getImage(const std::string& imageID) { std::map<std::string, sf::Image*>::iterator imageIt(m_images.find(imageID)); if(imageIt == m_images.end()) { printf("IMAGE \"%s\" NOT FOUND\n", imageID.c_str()); return *s_ImageNotFound; } else return *(imageIt->second); }
typename PatchExtractor<PValue>::ImageType::Pointer PatchExtractor<PValue>::ExtractPatch() { ContIndexType startIndex; for(unsigned int i = 0; i < 2; i++) { startIndex[i] = m_Center[i] - (m_Size[i] / 2.0); } startIndex[2] = 0; PointType newOrigin; m_Image->TransformContinuousIndexToPhysicalPoint(startIndex, newOrigin); typename ImageType::Pointer patch = ImageType::New(); patch->SetDirection(m_Image->GetDirection()); patch->SetOrigin(newOrigin); patch->SetSpacing(m_Image->GetSpacing()); typename ImageType::RegionType region; m_Size[2] = 1; region.SetSize(m_Size); patch->SetRegions(region); patch->Allocate(); typedef itk::NearestNeighborInterpolateImageFunction<ImageType, double> InterpolatorType; typename InterpolatorType::Pointer interpolator = InterpolatorType::New(); interpolator->SetInputImage(m_Image); itk::ImageRegionIterator<ImageType> imageIt(patch, region); while(!imageIt.IsAtEnd()) { typename ImageType::IndexType index = imageIt.GetIndex(); PointType point; patch->TransformIndexToPhysicalPoint(index, point); if(interpolator->IsInsideBuffer(point)) imageIt.Set(interpolator->Evaluate(point)); else imageIt.Set(0); ++imageIt; } return patch; }
typename PatchExtractor<PValue>::MaskType::Pointer PatchExtractor<PValue>::ExtractMask() { ContIndexType startIndex; for(unsigned int i = 0; i < 2; i++) { startIndex[i] = m_Center[i] - (m_Size[i] / 2.0); } startIndex[2] = 0; typename ImageType::IndexType properIndex; for(unsigned int i = 0; i < 3; i++) { properIndex[i] = round(startIndex[i]); } for(unsigned int i = 0; i < 2; i++) { if(properIndex[i] < 0) properIndex[i] = 0; if((m_Size[i] + properIndex[i]) > (m_Image->GetLargestPossibleRegion().GetSize()[i]-1)) { m_Size[i] = m_Image->GetLargestPossibleRegion().GetSize()[i]-1-properIndex[i]; } } MaskType::RegionType region; region.SetIndex(properIndex); m_Size[2] = 1; region.SetSize(m_Size); MaskType::Pointer mask = MaskType::New(); mask->SetDirection(m_Image->GetDirection()); mask->SetSpacing(m_Image->GetSpacing()); mask->SetOrigin(m_Image->GetOrigin()); mask->SetRegions(m_Image->GetLargestPossibleRegion()); mask->Allocate(); mask->FillBuffer(0); itk::ImageRegionIterator<MaskType> imageIt(mask, region); while(!imageIt.IsAtEnd()) { imageIt.Set(m_MaskValue); ++imageIt; } return mask; }
void medDatabasePreview::onSeriesClicked(const medDataIndex& id) { medAbstractDbController * db = medDataManager::instance()->controllerForDataSource(id.dataSourceId()); d->seriesGroup->clear(); if ( db ) { QList<medDataIndex> series = db->series(id); for (QList<medDataIndex>::const_iterator seriesIt( series.begin() ); seriesIt != series.end(); ++seriesIt ) { d->seriesGroup->addItem(new medDatabasePreviewItem( medDataIndex::makeSeriesIndex((*seriesIt).dataSourceId(), (*seriesIt).patientId(), (*seriesIt).studyId(), (*seriesIt).seriesId()) ) ); } } // Image level int firstImageId(-1); d->imageGroup->clear(); if ( db ) { QList<medDataIndex> images = db->images(id); for (QList<medDataIndex>::const_iterator imageIt( images.begin() ); imageIt != images.end(); ++imageIt ) { if (firstImageId < 0) firstImageId = (*imageIt).imageId(); d->imageGroup->addItem(new medDatabasePreviewItem( medDataIndex(*imageIt ) ) ); } } d->scene->setSceneRect(d->imageGroup->boundingRect()); if(!d->level) onSlideUp(); else moveToItem( d->imageGroup->item(firstImageId) ); }
void mitk::VolumeCalculator::InternalCompute(itk::Image< TPixel, VImageDimension >* itkImage) { itk::ImageRegionConstIterator<itk::Image < TPixel, VImageDimension > > imageIt(itkImage, itkImage->GetLargestPossibleRegion() ); unsigned long int count = 0; for (imageIt.GoToBegin(); !imageIt.IsAtEnd(); ++imageIt) { if ( (int)(imageIt.Get()) >= m_Threshold ) { count++; } } if (itkImage->GetLargestPossibleRegion().GetImageDimension() == 3) { m_Volume = count / 1000.0 * itkImage->GetSpacing()[0] * itkImage->GetSpacing()[1] * itkImage->GetSpacing()[2]; } else if (itkImage->GetLargestPossibleRegion().GetImageDimension() == 2) { m_Volume = count / 100.0 * itkImage->GetSpacing()[0] * itkImage->GetSpacing()[1]; } m_VoxelCount = count; }