Пример #1
0
void ItemBank::initialiseBank() {
	DataStorage* dataStorage = dataStorage->getInstance();

	strToBank(dataStorage->readFromLocalMemory());

	return;
}
Пример #2
0
void FftClFft::
        computeC2R( Tfr::ChunkData::Ptr input, DataStorage<float>::Ptr output )
{
    unsigned denseWidth = input->size().width;
    unsigned redundantWidth = output->size().width;

    EXCEPTION_ASSERT( denseWidth == redundantWidth/2+1 );

    Tfr::ChunkData::Ptr redundantInput( new Tfr::ChunkData( redundantWidth, input->size().height ));

    {
        Tfr::ChunkElement* in = CpuMemoryStorage::ReadOnly<1>( input ).ptr();
        Tfr::ChunkElement* out = CpuMemoryStorage::WriteAll<1>( redundantInput ).ptr();
        unsigned x;
        for (x=0; x<denseWidth; ++x)
            out[x] = in[x];
        for (; x<redundantWidth; ++x)
            out[x] = conj(in[redundantWidth - x]);
    }

    Tfr::ChunkData::Ptr complexoutput( new Tfr::ChunkData( output->size()));

    computeWithClFft(redundantInput, complexoutput, FftDirection_Inverse);

    ::stftDiscardImag( complexoutput, output );
}
Пример #3
0
void FftClFft::
        computeR2C( DataStorage<float>::Ptr input, Tfr::ChunkData::Ptr output )
{
    unsigned denseWidth = output->size().width;
    unsigned redundantWidth = input->size().width;

   EXCEPTION_ASSERT( denseWidth == redundantWidth/2+1 );

    // interleave input to complex data
   Tfr::ChunkData::Ptr complexinput( new Tfr::ChunkData( input->size()));
   ::stftToComplex( input, complexinput );

    // make room for full output
    Tfr::ChunkData::Ptr redundantOutput( new Tfr::ChunkData( redundantWidth ));

    // compute
    computeWithClFft(complexinput, redundantOutput, FftDirection_Forward);

    // discard redundant output
    {
        Tfr::ChunkElement* in = CpuMemoryStorage::ReadOnly<1>( redundantOutput ).ptr();
        Tfr::ChunkElement* out = CpuMemoryStorage::WriteAll<1>( output ).ptr();
        unsigned x;
        for (x=0; x<denseWidth; ++x)
            out[x] = in[x];
    }
}
Пример #4
0
void FftClFft::
        compute(DataStorage<float>::Ptr input, Tfr::ChunkData::Ptr output, DataStorageSize n )
{
    unsigned denseWidth = n.width/2+1;

    EXCEPTION_ASSERT( output->numberOfElements()/denseWidth == n.height );
    EXCEPTION_ASSERT( input->numberOfElements()/n.width == n.height );

    // interleave input to complex data
    Tfr::ChunkData::Ptr complexinput( new Tfr::ChunkData( input->size()));
    ::stftToComplex( input, complexinput );

    // make room for full output
    Tfr::ChunkData::Ptr redundantOutput( new Tfr::ChunkData( n.width*n.height ));

    // compute
    computeWithClFft(complexinput, redundantOutput, n, FftDirection_Forward);

    // discard redundant output
    Tfr::ChunkElement* in = CpuMemoryStorage::ReadOnly<1>( redundantOutput ).ptr();
    Tfr::ChunkElement* out = CpuMemoryStorage::WriteAll<1>( output ).ptr();
#pragma omp parallel for
    for (int i=0; i < (int)n.height; ++i)
    {
        unsigned x;
        for (x=0; x<denseWidth; ++x)
            out[i*denseWidth + x] = in[i*n.width + x];
    }
}
Пример #5
0
std::string DataStorageString::
        printDataStorage(DataStorage<float>::ptr data)
{
    EXCEPTION_ASSERT(data);

    std::stringstream ss;
    DataStorageSize sz = data->size ();
    ss << sz;
    float *p = sz.width ? data->getCpuMemory () : 0;

    if (sz.depth>1) {
        for (int z=0; z<sz.depth; ++z) {
            for (int y=0; y<sz.height; ++y) {
                ss << std::endl << "[z:" << z << ", y:" << y << "] = { ";

                float *q = p + y*sz.width + z*sz.height*sz.width;

                if (sz.width)
                    ss << q[0];

                for (int x=1; x<sz.width; ++x)
                    ss << ", " << q[x];

                ss << " }";
            }
        }
    } else if (sz.height>1) {
        for (int y=0; y<sz.height; ++y) {
            ss << std::endl << "[y:" << y << "] = { ";

            float *q = p + y*sz.width;

            if (sz.width)
                ss << q[0];

            for (int x=1; x<sz.width; ++x)
                ss << ", " << q[x];

            ss << " }";
        }
    } else {
        ss << " = { ";

        if (sz.width)
            ss << p[0];

        for (int x=1; x<sz.width; ++x)
            ss << ", " << p[x];

        ss << " }";
    }

    return ss.str ();
}
void mitk::PickingTool::Activated()
{
  DataStorage* dataStorage = this->GetDataStorage();
  m_WorkingData = this->GetWorkingData();

  //add to datastorage and enable interaction
  if (!dataStorage->Exists(m_PointSetNode))
    dataStorage->Add(m_PointSetNode, m_WorkingData);

  // now add result to data tree
  dataStorage->Add(m_ResultNode, m_WorkingData);
}
Пример #7
0
void ItemBank::update() {
	vector<string>items;

	for (vector<Item*>::iterator iter = bank.begin(); iter != bank.end(); iter++) {
		items = updateItem(items, *iter);
	}
	
	DataStorage* dataStorage = dataStorage->getInstance();
	dataStorage->writeToFile(items);

	return;
}
Пример #8
0
TEST(typed_condition_test, bool_testing)
{
	DataStorage tmp;
	string k1 = "x";
	string k2 = "y";
	tmp.set_value(k1, false);
	tmp.set_value(k2, true);
	TypedCondition<bool> cond(&tmp,k1, true, Operation::EQUAL);
	ASSERT_EQ(cond.evaluate(), false);
	
	tmp.set_value(k1, true);
	TypedCondition<bool> cond2(&tmp,k1, true, Operation::EQUAL);
	ASSERT_EQ(cond2.evaluate(), true);
}
Пример #9
0
TEST(double_var_condition_test, float_testing)
{
	DataStorage tmp;
	string k1 = "x";
	string k2 = "y";
	tmp.set_value(k1, 10.0f);
	tmp.set_value(k2, 20.12f);
	DoubleVarCondition<float> cond(&tmp,k1, k2, Operation::GREATHER);
	ASSERT_EQ(cond.evaluate(), false);


	tmp.set_value(k1, 2.2f);
	tmp.set_value(k2, 0.2f);
	DoubleVarCondition<float> cond2(&tmp,k1, k2, Operation::LESS);
	ASSERT_EQ(cond2.evaluate(), false);
	
	tmp.set_value(k1, -0.2f);
	tmp.set_value(k2, 999.2f);
	DoubleVarCondition<float> cond3(&tmp,k1, k2, Operation::EQUAL);
	ASSERT_EQ(cond3.evaluate(), false);
	
	tmp.set_value(k1, 13.2f);
	tmp.set_value(k2, 13.0f);
	DoubleVarCondition<float> cond4(&tmp,k1, k2, Operation::EQUAL);
	DoubleVarCondition<float> cond5(&tmp,k1, k2, Operation::GREATHEREQUAL);
	DoubleVarCondition<float> cond6(&tmp,k1, k2, Operation::LESSEQUAL);
	ASSERT_EQ(cond4.evaluate(), false);
	ASSERT_EQ(cond5.evaluate(), true);
	ASSERT_EQ(cond6.evaluate(), false);
}
Пример #10
0
TEST(double_var_condition_test, mixed)
{
	DataStorage tmp;
	string k1 = "x";
	string k2 = "y";
	tmp.set_value(k1, 10.0f);
	tmp.set_value(k2, 20.0f);
	DoubleVarCondition<float> cond(&tmp,k1, k2, Operation::GREATHER);
	ASSERT_EQ(cond.evaluate(), false);


	tmp.set_value(k1, 0);
	tmp.set_value(k2, 0);
	DoubleVarCondition<int> cond2(&tmp,k1, k2, Operation::EQUAL);
	DoubleVarCondition<int> cond3(&tmp,k1, k2, Operation::LESS);
	ASSERT_EQ(cond2.evaluate(), true);
	ASSERT_EQ(cond3.evaluate(), false);
}
Пример #11
0
std::string DataStorageString::
        printDataStorageStats(DataStorage<float>::ptr data)
{
    std::stringstream ss;
    Statistics<float> s(data, false, true);
    ss << "size = " << data->size () << ", min = " << *s.getMin () << ", max = " << *s.getMax ()
       << ", mean = " << s.getMean () << ", std = " << s.getStd ();

    return ss.str();
}
Пример #12
0
void EIDTag_Processor::process( const XMLCh* const  chars
					, const unsigned int  length 
					, DataStorage&		  dataStorage
					)
{
	displayName();

	//-------------------------------------
	// if the current path matches what we have to save, copy over the data
	// to the data storage
	//-------------------------------------
	if (dataStorage.matchTagPath())
	{
		char*		pChars	= XMLString::transcode(chars);
		CByteArray* pData	= new CByteArray(pChars);
		XMLString::release(&pChars);
		dataStorage.store(dataStorage.getTagPath(), pData);
	}
}
Пример #13
0
void mitk::LiveWireTool2D::RemoveHelperObjects()
{
  DataStorage *dataStorage = m_ToolManager->GetDataStorage();

  if (!m_EditingContours.empty())
    std::for_each(m_EditingContours.begin(), m_EditingContours.end(), RemoveFromDataStorage(dataStorage));

  if (!m_WorkingContours.empty())
    std::for_each(m_WorkingContours.begin(), m_WorkingContours.end(), RemoveFromDataStorage(dataStorage));

  if (m_EditingContourNode.IsNotNull())
    dataStorage->Remove(m_EditingContourNode);

  if (m_LiveWireContourNode.IsNotNull())
    dataStorage->Remove(m_LiveWireContourNode);

  if (m_ContourModelNode.IsNotNull())
    dataStorage->Remove(m_ContourModelNode);

  mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
Пример #14
0
void FftClFft::
        inverse(Tfr::ChunkData::Ptr input, DataStorage<float>::Ptr output, DataStorageSize n )
{
    unsigned denseWidth = n.width/2+1;
    unsigned redundantWidth = n.width;
    unsigned batchcount1 = output->numberOfElements()/redundantWidth,
             batchcount2 = input->numberOfElements()/denseWidth;

    EXCEPTION_ASSERT( batchcount1 == batchcount2 );
    EXCEPTION_ASSERT( (denseWidth-1)*2 == redundantWidth );
    EXCEPTION_ASSERT( redundantWidth*n.height == output->numberOfElements() );

    Tfr::ChunkData::Ptr redundantInput( new Tfr::ChunkData( n.height*redundantWidth ));

    {
        Tfr::ChunkElement* in = CpuMemoryStorage::ReadOnly<1>( input ).ptr();
        Tfr::ChunkElement* out = CpuMemoryStorage::WriteAll<1>( redundantInput ).ptr();
#pragma omp parallel for
        for (int i=0; i < (int)n.height; ++i)
        {
            unsigned x;
            for (x=0; x<denseWidth; ++x)
                out[i*redundantWidth + x] = in[i*denseWidth + x];
            for (; x<redundantWidth; ++x)
                out[i*redundantWidth + x] = conj(in[i*denseWidth + redundantWidth - x]);
        }
    }

    Tfr::ChunkData::Ptr complexoutput( new Tfr::ChunkData( output->size()));

    computeWithClFft(redundantInput, complexoutput, DataStorageSize( redundantWidth, n.height), FftDirection_Inverse);

    ::stftDiscardImag( complexoutput, output );

    TIME_STFT ComputationSynchronize();
}
Пример #15
0
DataStorage::SetOfObjects::Pointer AbstractFileReader::Read(DataStorage& ds)
{
  DataStorage::SetOfObjects::Pointer result = DataStorage::SetOfObjects::New();
  std::vector<BaseData::Pointer> data = this->Read();
  for (std::vector<BaseData::Pointer>::iterator iter = data.begin();
       iter != data.end(); ++iter)
  {
    mitk::DataNode::Pointer node = mitk::DataNode::New();
    node->SetData(*iter);
    this->SetDefaultDataNodeProperties(node, this->GetInputLocation());
    ds.Add(node);
    result->InsertElement(result->Size(), node);
  }
  return result;
}
Пример #16
0
void mitk::PickingTool::OnPointAdded()
{
  if (m_WorkingData != this->GetWorkingData())
  {
    DataStorage *dataStorage = this->GetDataStorage();

    if (dataStorage->Exists(m_PointSetNode))
    {
      dataStorage->Remove(m_PointSetNode);
      dataStorage->Add(m_PointSetNode, this->GetWorkingData());
    }

    if (dataStorage->Exists(m_ResultNode))
    {
      dataStorage->Remove(m_ResultNode);
      dataStorage->Add(m_ResultNode, this->GetWorkingData());
    }

    m_WorkingData = this->GetWorkingData();
  }

  // Perform region growing/picking

  int timeStep =
    mitk::BaseRenderer::GetInstance(mitk::BaseRenderer::GetRenderWindowByName("stdmulti.widget1"))->GetTimeStep();

  mitk::PointSet::PointType seedPoint = m_PointSet->GetPointSet(timeStep)->GetPoints()->Begin().Value();

  // as we want to pick a region from our segmentation image use the working data from ToolManager
  mitk::Image::Pointer orgImage = dynamic_cast<mitk::Image *>(m_ToolManager->GetWorkingData(0)->GetData());

  if (orgImage.IsNotNull())
  {
    if (orgImage->GetDimension() == 4)
    { // there may be 4D segmentation data even though we currently don't support that
      mitk::ImageTimeSelector::Pointer timeSelector = mitk::ImageTimeSelector::New();
      timeSelector->SetInput(orgImage);
      timeSelector->SetTimeNr(timeStep);
      timeSelector->UpdateLargestPossibleRegion();
      mitk::Image *timedImage = timeSelector->GetOutput();

      AccessByItk_2(timedImage, StartRegionGrowing, timedImage->GetGeometry(), seedPoint);
    }
    else if (orgImage->GetDimension() == 3)
    {
      AccessByItk_2(orgImage, StartRegionGrowing, orgImage->GetGeometry(), seedPoint);
    }
    this->m_PointSet->Clear();
  }
}
Пример #17
0
void  MainWindow::saveClicked()
{
    DataStorage storage;
    QString filename = QFileDialog::getSaveFileName(this,
                                                    tr("Save File..."),
                                                    QString(), tr("Plot files (*.plot);;All Files (*)"));

    if(!filename.isEmpty()) {
        storage.setFunctionIndex(_plotControlWidget->getSelectedFunctionIndex());
        storage.setFunctionParams(_plotControlWidget->getFunctionParameters());
        storage.setValueFrom(_plotControlWidget->getValueFrom());
        storage.setValueTo(_plotControlWidget->getValueTo());
        storage.setStep(_plotControlWidget->getValueStep());

        storage.setPoints(_points->getPoints());

        if(!storage.save(filename)) {
            QMessageBox::warning(this, "Warning!", "Could not save file with results!");
        }\
    }
}
Пример #18
0
int CoreDataNodeReader::Read(const std::string &fileName, DataStorage &storage)
{
  mitk::DataNodeFactory::Pointer nodeReader = mitk::DataNodeFactory::New();

  // the ITK Nrrd file reader cannot handle '/' in file path on Win 64bit
  std::string name(fileName);
  std::replace(name.begin(), name.end(), '\\', '/');
  nodeReader->SetFileName(name);
  nodeReader->Update();
  int n = 0;
  for ( unsigned int i = 0 ; i < nodeReader->GetNumberOfOutputs( ); ++i )
  {
    mitk::DataNode::Pointer node;
    node = nodeReader->GetOutput(i);
    if ( node->GetData() != NULL )
    {
      storage.Add(node);
      ++n;
    }
  }
  return n;
}
Пример #19
0
void TaskAdder::executeCommand(Identifier infoIdentifier, DataStorage &dataStorage) {
	//extract necessary information to create a new task
	string date = infoIdentifier.getDate();
	string startTime = infoIdentifier.getStartTime();
	string endTime = infoIdentifier.getEndTime();
	string event = infoIdentifier.getEvent();
	string status = UNDONE;	//defacult status of all status are undone
	int index = dataStorage.getTaskIndex();

	Task taskToAdd(event, date, startTime, endTime, UNDONE, index);
	dataStorage.saveData(taskToAdd);
	dataStorage.saveFile();
	
	//increase the running index in dataStorage by 1 as one new task is added
	dataStorage.setTaskIndex(dataStorage.getTaskIndex() + 1);

	//display all the tasks of the same date on the task sheet 
	dataStorage.searchDate(date);
}
Пример #20
0
int main(int argc, char *argv[])
{
    int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;
    //int32_t info[2];

    //char buffer[256];
    if (argc < 3) {
       fprintf(stderr,"usage %s hostname port\n", argv[0]);
       exit(0);
    }
    portno = atoi(argv[2]);
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0) 
        error("ERROR opening socket");
    server = gethostbyname(argv[1]);
    if (server == NULL) {
        fprintf(stderr,"ERROR, no such host\n");
        exit(0);
    }
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    bcopy((char *)server->h_addr, 
         (char *)&serv_addr.sin_addr.s_addr,
         server->h_length);
    serv_addr.sin_port = htons(portno);
    if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) 
        error("ERROR connecting");
    printf("Connection Successful! ");
    //printf("Please enter the message: ");
    //bzero(buffer,256);
    //fgets(buffer,255,stdin);
    //n = write(sockfd,buffer,strlen(buffer));
    CVBoardTypes BT = cvV2718;
    CVAddressModifier AM = cvA24_U_DATA;
    CVDataWidth DW = cvD16;
    DataStorage dataStore;
    //int32_t Data = 0;
    int32_t Handle;
    n = dataStore.CAENVME_Init(BT,0,0,&Handle,sockfd);
    if(n != cvSuccess){
	printf("Return value is not cvSuccess\n");
    }
    /*
    n = dataStore.CAENVME_ReadCycle(Handle,0x1800B4,&Data,AM,DW,sockfd);
    if(n != cvSuccess){
	printf("Return value is not cvSuccess\n");
    }
    printf("Data: %x\n", Data);
    */
    int l;
    for(l=0;l<100000;l++){
	    int32_t Data = l;
	    printf("Sending Data! \n");
	    n = dataStore.CAENVME_WriteCycle(Handle,0x1800B4,&Data,AM,DW,sockfd);
    	    if(n != cvSuccess){
	   	printf("Return value is not cvSuccess\n");
    	    }
	    //n = dataStore.CAENVME_Init(BT,2,3,&Data,sockfd);
	    //n = dataStore.CAENVME_End(Data,sockfd);
	    n = dataStore.CAENVME_ReadCycle(Handle,0x1800B4,&Data,AM,DW,sockfd);
    	    if(n != cvSuccess){
		 printf("Return value is not cvSuccess\n");
    	    }
	    if(Data != l){
		 error("The Data Value Does not match \n");
	    }
	    //if (n < 0) 
	     //    error("ERROR writing to socket");
	    //bzero(buffer,256);
	    //n = read(sockfd,info,sizeof(info));
	   // if (n < 0) 
	    //     error("ERROR reading from socket");
    }
    n = dataStore.CAENVME_End(Handle,sockfd);
    if(n != cvSuccess){
	printf("Return value is not cvSuccess\n");
    }
    
    usleep(10000);
    printf("All the data has been sent, Closing Socket\n");
    close(sockfd);
    return 0;
}
Пример #21
0
void MainWindow::loadClicked()
{
    DataStorage storage;
    QString filename = QFileDialog::getOpenFileName(this,
                                                    tr("Open File..."),
                                                    QString(), tr("Plot files (*.plot);;All Files (*)"));
    if(!filename.isEmpty()) {
        if(!storage.load(filename)) {
            QMessageBox::warning(this, "Warning!", "Could not load file with results!");
            return;
        }

        if(!_plotControlWidget->setFunctionIndex(storage.getFunctionIndex())) {
            QMessageBox::warning(this, "Warning!", "Invalid function index was loaded!");
            return;
        }
        _plotControlWidget->setFunctionParameters(storage.getFunctionParams());

        if(storage.getValueFrom() > storage.getValueTo()) {
            QMessageBox::warning(this, "Warning!", "Invalid function values range was loaded! Begin value must be less or equal than end value");
            return;
        }
        _plotBuilder->setRange(storage.getValueFrom(), storage.getValueTo());
        _plotControlWidget->setValueFrom(storage.getValueFrom());
        _plotControlWidget->setValueTo(storage.getValueTo());

        if(storage.getStep() <= 0) {
            QMessageBox::warning(this, "Warning!", "Invalid calculation step was loaded. It must be greater than zero");
            return;
        }
        _plotBuilder->setStep(storage.getStep());
        _plotControlWidget->setValueStep(storage.getStep());

        _points->setPoints(storage.getPoints());
        _pointsWidget->updatePage();
    }
}
Пример #22
0
void TaskSearcher::executeCommand(Identifier infoIdentifier, DataStorage &dataStorage) {
	string keyword = infoIdentifier.getKeyword();
	dataStorage.searchData(keyword);
}