File indexing completed on 2024-03-24 15:16:53
0001 /* 0002 SPDX-FileCopyrightText: 2015 Jasem Mutlaq <mutlaqja@ikarustech.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "fitsdebayer.h" 0008 0009 #include "fitsdata.h" 0010 #include "fitsview.h" 0011 #include "fitsviewer.h" 0012 0013 #include <QPushButton> 0014 0015 debayerUI::debayerUI(QDialog *parent) : QDialog(parent) 0016 { 0017 setupUi(parent); 0018 setModal(false); 0019 } 0020 0021 FITSDebayer::FITSDebayer(FITSViewer *parent) : QDialog(parent) 0022 { 0023 ui = new debayerUI(this); 0024 0025 viewer = parent; 0026 0027 connect(ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked, 0028 this, &FITSDebayer::applyDebayer); 0029 } 0030 0031 void FITSDebayer::applyDebayer() 0032 { 0033 QSharedPointer<FITSView> view; 0034 if (viewer->getCurrentView(view)) 0035 { 0036 auto image_data = view->imageData(); 0037 0038 dc1394bayer_method_t method = static_cast<dc1394bayer_method_t>(ui->methodCombo->currentIndex()); 0039 dc1394color_filter_t filter = static_cast<dc1394color_filter_t>(ui->filterCombo->currentIndex() + 512); 0040 0041 int offsetX = ui->XOffsetSpin->value(); 0042 int offsetY = ui->YOffsetSpin->value(); 0043 0044 BayerParams param; 0045 param.method = method; 0046 param.filter = filter; 0047 param.offsetX = offsetX; 0048 param.offsetY = offsetY; 0049 0050 image_data->setBayerParams(¶m); 0051 0052 ui->statusEdit->setText(i18n("Processing...")); 0053 0054 qApp->processEvents(); 0055 0056 if (image_data->debayer(true)) 0057 { 0058 ui->statusEdit->setText(i18n("Complete.")); 0059 view->rescale(ZOOM_KEEP_LEVEL); 0060 view->updateFrame(); 0061 } 0062 else 0063 ui->statusEdit->setText(i18n("Debayer failed.")); 0064 } 0065 } 0066 0067 void FITSDebayer::setBayerParams(BayerParams *param) 0068 { 0069 ui->methodCombo->setCurrentIndex(param->method); 0070 ui->filterCombo->setCurrentIndex(param->filter - 512); 0071 0072 ui->XOffsetSpin->setValue(param->offsetX); 0073 ui->YOffsetSpin->setValue(param->offsetY); 0074 }