第一次写CSDN博客,最近在做毕业设计,有空之余写了一个图片读存和简单OpenCV的边缘处理。最终实现了图片的读取,边缘检测,保存的功能。
本次采用Qt5.7(安装包名称为qt-opensource-windows-x86-mingw530-5.7.1.exe)与OpenCV3.1版本。两者环境的配置就不多说了。
一、界面设计
首先建立一个新工程mainWidget继承于QWidget类如图,在ui文件中建立如图所示的界面。
编译运行之后界面如下图,其实很简陋啦。
二、打开、显示图片
点击openBtn按钮,触发槽。代码如下:
void mainWidget::on_openBtn_clicked()
{
QString fileName = QFileDialog::getOpenFileName(
this, "打开图片",
".",
"图片 (*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;所有文件(*.*)");
if(fileName != "")
{
if(image->load(fileName))
{
QGraphicsScene *scene = new QGraphicsScene;
scene->addPixmap(QPixmap::fromImage(*image));
ui->formerView->setScene(scene);
ui->formerView->resize(image->width() + 10, image->height() + 10);
ui->formerView->show();
}
else
{
QMessageBox::information(this,
tr("打开图像失败"),
tr("打开图像失败!"));
delete image; return;
}
}
}三、OpenCV的简单实现、处理
此段代码摘自毛星云的《OpenCV3编程入门》,只是简单的利用了一下Canny算子进行边缘检测。
Mat