void MainWindow::getPowerSpectrumUsingDCT() { if (activeImageDisplay()) { QImage image = activeImageDisplay()->getImage(); QString curFile = activeImageDisplay()->getCurFileWithStrippedName(); ImageOperations imageOperations(image); if (image.allGray()) { QImage RImage = imageOperations.DCTPowerSpectrum(Red); if (RImage.height() == 0) return; ImageDisplay *redImageDisplay = createImageDisplay(workspace->height(), workspace->width()); redImageDisplay->newFile("DCT Gray power spectrum of " + curFile); redImageDisplay->setImage(RImage); redImageDisplay->show(); } else { QImage RImage = imageOperations.DCTPowerSpectrum(Red); QImage GImage = imageOperations.DCTPowerSpectrum(Green); QImage BImage = imageOperations.DCTPowerSpectrum(Blue); if (RImage.height() == 0 || GImage.height() == 0 || BImage.height() == 0) return; ImageDisplay *redImageDisplay = createImageDisplay(workspace->height(), workspace->width()); redImageDisplay->newFile("DCT Red power spectrum of " + curFile); redImageDisplay->setImage(RImage); redImageDisplay->show(); ImageDisplay *greenImageDisplay = createImageDisplay(workspace->height(),workspace->width()); greenImageDisplay->newFile("DCT Green power spectrum of " + curFile); greenImageDisplay->setImage(GImage); greenImageDisplay->show(); ImageDisplay *blueImageDisplay = createImageDisplay(workspace->height(), workspace->width()); blueImageDisplay->newFile("DCT Blue power spectrum of " + curFile); blueImageDisplay->setImage(BImage); blueImageDisplay->show(); } } }