#include "widget.h"
#include "ui_widget.h"
#include <QString>
#include <QFileDialog>
#include <QMessageBox>
#include <opencv2/opencv.hpp>
#include <QTextCodec>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_open_image_clicked()
{
QString filename = QFileDialog::getOpenFileName(this,tr("Open Image"),"",tr("Image File(*.bmp *.jpg *.jpeg *.png)"));
QTextCodec *code = QTextCodec::codecForName("gb18030");
std::string name = code->fromUnicode(filename).data();
image = cv::imread(name);
if(!image.data)
{
QMessageBox msgBox;
msgBox.setText(tr("image data is null"));
msgBox.exec();
}
else
{
cv::cvtColor(image,image,CV_BGR2RGB);
img = QImage((const unsigned char*)(image.data),image.cols,image.rows,QImage::Format_RGB888);
ui->label_show_image->clear();
ui->pushButton_image_processing->setEnabled(true);
imgScaled = img.scaled(ui->label_show_image->size(),Qt::KeepAspectRatio);
ui->label_show_image->setPixmap(QPixmap::fromImage(imgScaled));
ui->label_show_image->resize(ui->label_show_image->pixmap()->size());
}
}
void Widget::on_pushButton_image_processing_clicked()
{
cv::flip(image,image,1);
img = QImage((const unsigned char*)(image.data),image.cols,image.rows,QImage::Format_RGB888);
imgScaled = img.scaled(ui->label_show_image->size(),Qt::KeepAspectRatio);
ui->label_show_image->setPixmap(QPixmap::fromImage(imgScaled));
}