void OOFImage3D::threshold(double T) { vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageData *gray; vtkImageLuminance *luminance; vtkImageThreshold *thold1, *thold2; luminance = vtkImageLuminance::New(); luminance->SetInputConnection(rgb->GetProducerPort()); gray = luminance->GetOutput(); thold1 = vtkImageThreshold::New(); thold1->ThresholdByUpper(T*255); thold1->SetOutValue(0); thold1->SetInputConnection(gray->GetProducerPort()); thold2 = vtkImageThreshold::New(); thold2->ThresholdByLower(T*255); thold2->SetOutValue(255); thold2->SetInputConnection(thold1->GetOutputPort()); gray = thold2->GetOutput(); gray->Update(); combineChannels(gray,alpha); imageChanged(); }
//Encodes the audio data into a WAV file void coder::encode(AudioData * data, string filename){ ofstream audioFile(filename, ios::binary); if(audioFile.is_open()){ audioFile.write(data->getRIFF(), 4); int fileSize = data->getFileSize(); audioFile.write((char *)&fileSize, 4); audioFile.write(data->getFileType(), 4); audioFile.write(data->getFormat(), 4); unsigned int infoSize = data->getFormatInfoSize(); audioFile.write((char *)&infoSize, 4); audioFile.write(data->getFormatInfo(), infoSize); audioFile.write(data->getDataChunk(), 4); unsigned int dataSize = data->getDataSize(); audioFile.write((char *)&dataSize, 4); short ** channelData = data->getChannelData(); short * combinedData = combineChannels(channelData, data->getChannels(), data->getNumberOfSamples()); audioFile.write((char *)combinedData, dataSize); audioFile.close(); } }
void OOFImage3D::gray() { vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageData *gray; vtkImageLuminance *luminance; luminance = vtkImageLuminance::New(); luminance->SetInputConnection(rgb->GetProducerPort()); gray = luminance->GetOutput(); gray->Update(); combineChannels(gray,alpha); imageChanged(); }
void OOFImage3D::medianFilter(int radius) { padImage(-1); vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageMedian3D *median; median = vtkImageMedian3D::New(); median->SetKernelSize(radius*2, radius*2, radius*2); median->SetInputConnection(rgb->GetProducerPort()); rgb = median->GetOutput(); rgb->Update(); combineChannels(rgb,alpha); padImage(1); imageChanged(); }
void OOFImage3D::dim(double factor) { vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageMathematics *dimmer; dimmer = vtkImageMathematics::New(); dimmer->SetOperationToMultiplyByK(); dimmer->SetConstantK(factor); dimmer->SetInputConnection(rgb->GetProducerPort()); rgb = dimmer->GetOutput(); rgb->SetScalarTypeToUnsignedChar(); rgb->Update(); combineChannels(rgb,alpha); imageChanged(); }
void OOFImage3D::negate(double dummy) { vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageMathematics *negator, *corrector; negator = vtkImageMathematics::New(); negator->SetOperationToMultiplyByK(); negator->SetConstantK(-1.0); negator->SetInputConnection(rgb->GetProducerPort()); corrector = vtkImageMathematics::New(); corrector->SetOperationToAddConstant(); corrector->SetConstantC(255); corrector->SetInputConnection(negator->GetOutputPort()); rgb = corrector->GetOutput(); rgb->SetScalarTypeToUnsignedChar(); rgb->Update(); combineChannels(rgb,alpha); imageChanged(); }
void OOFImage3D::fade(double factor) { vtkImageData *rgb = getRGB(); vtkImageData *alpha = getAlpha(); vtkImageMathematics *fade1, *fade2; fade1 = vtkImageMathematics::New(); fade1->SetOperationToMultiplyByK(); fade1->SetConstantK(1.0-factor); fade1->SetInputConnection(rgb->GetProducerPort()); fade2 = vtkImageMathematics::New(); fade2->SetOperationToAddConstant(); fade2->SetConstantC(255*factor); fade2->SetInputConnection(fade1->GetOutputPort()); rgb = fade2->GetOutput(); rgb->SetScalarTypeToUnsignedChar(); rgb->Update(); combineChannels(rgb,alpha); imageChanged(); }