资源简介
功能介绍:
选择图片坐标,注意是坐标是对应原有的图片坐标,与图片的缩放没有关系。即不管放大缩小多少,右下角的坐标一定对应着原始图片的大小。
每选择一个点,确认一次,存入数据。可以快捷键(空格键);
确认两个点后,当前目标已经确认,显示矩形框,同时显示写入信息的数据;
确认数据之后,觉得数据不对,可以撤销当前(还未保存至txt)的数据,一次撤销一个点的数据;
可以直接在界面打开资源管理器,转至txt所在文件夹;
识别文件夹下所有图片,录完当前图片后,点击进入下一张图片。
开发环境:Qt5.5.1+OpenCV2.4.9+VS2010
代码片段和文件信息
#include “calib_point.h“
#include
#include
#include
#include
#include
#include“displaywgt.h“
QString s2q(const std::string &s)
{
return QString(QString::fromLocal8Bit(s.c_str()));
}
std::string q2s(const QString &s)
{
return std::string((const char *)s.toLocal8Bit());
}
template
std::string Number2String(T val)
{
std::stringstream ss;
ss << val;
std::string strVal;
ss >> strVal;
return strVal;
}
calib_point::calib_point(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
ui.label_display->installEventFilter(this);
fileFlag=0;
connect(ui.openFileBtnSIGNAL(clicked())thisSLOT(onOpenBtn()));
connect(ui.nextBtnSIGNAL(clicked())thisSLOT(onNextBtn()));
connect(ui.confirmBtnSIGNAL(clicked())thisSLOT(onConfirmBtn()));
connect(ui.saveBtnSIGNAL(clicked())thisSLOT(onSaveBtn()));
connect(ui.backoutBtnSIGNAL(clicked())thisSLOT(onBackoutBtn()));
connect(ui.ToDataBtnSIGNAL(clicked())thisSLOT(onTodataBtn()));
ui.confirmBtn->setShortcut(Qt::Key_Space);
ui.backoutBtn->setShortcut(Qt::Key_Backspace);
}
calib_point::~calib_point()
{
}
void calib_point::onOpenBtn()
{
QString folderName = QFileDialog::getExistingDirectory(this tr(“Open Folder“) QString()); //获取文件目录路径
if (!folderName.isEmpty()) {
QDir dir(folderName); //初始化文件目录
fileList=dir.entryInfoList(QStringList() << “*.jpg“ << “*.png“ << “*.bmp“ QDir::Files QDir::NoSort); //筛选图片文件,存入fileInfiList
if(fileList.size()>0)
{
QString infoStr=QString::fromLocal8Bit(“共有“);
infoStr+=QString::number(fileList.size()); //图片的数量
infoStr+=QString::fromLocal8Bit( “张图片: “);
infoStr+=fileList[fileFlag].baseName();
infoStr+=““;
infoStr+=QString::number(fileFlag+1);
ui.infoLine->setText(infoStr);
cailbMat=imread(fileList[0].absoluteFilePath().toStdString()); //转QString 为stdString,然后利用opencv imread读入图片
if(!cailbMat.empty())
{
ui.label_display->setImgBuffer(cailbMat.datacailbMat.colscailbMat.rowscailbMat.step); //显示图片,label_display是QLbale派生类,自定义的
fileFlag++;
}
}
}
}
void calib_point::onNextBtn()
{
if(!m_posVec.empty())
m_posVec.clear(); //新的图片应该没有任何标定数据,因此需要清空数据
if(fileFlag {
cailbMat=imread(fileList[fileFlag].absoluteFilePath().toStdString()); /
QString infoStr=QString::fromLocal8Bit(“共有“);
infoStr+=QString::number(fileList.size());
infoStr+=QString::fromLocal8Bit( “张图片: “);
infoStr+=fileList[fileFlag].fileName();
infoStr+=““;
infoStr+=QString::number(fileFlag+1);
ui.infoLine->setText(infoStr);
if(!cailbMat.empty())
{
ui.label_display->setImgBuffer(cailbMat.datacailbMat.colscailbMat.rowscailbMat.step); //显示图片
}
fileFlag++;
}
else fileFlag=0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-12-21 16:05 calib_point\
目录 0 2016-12-21 11:19 calib_point\Win32\
目录 0 2016-12-25 16:17 calib_point\Win32\Debug\
文件 145920 2016-12-21 16:01 calib_point\Win32\Debug\calib_point.exe
文件 1354596 2016-12-21 16:01 calib_point\Win32\Debug\calib_point.ilk
文件 2640896 2016-12-21 16:01 calib_point\Win32\Debug\calib_point.pdb
文件 130 2017-01-05 15:29 calib_point\Win32\Debug\data.txt
目录 0 2016-12-21 15:48 calib_point\calib_point\
目录 0 2016-12-21 16:01 calib_point\calib_point\Debug\
文件 151960 2016-12-21 16:01 calib_point\calib_point\Debug\CL.read.1.tlog
文件 3908 2016-12-21 16:01 calib_point\calib_point\Debug\CL.write.1.tlog
文件 381 2016-12-21 16:01 calib_point\calib_point\Debug\calib_point.exe.intermediate.manifest
文件 55 2016-12-21 16:01 calib_point\calib_point\Debug\calib_point.lastbuildstate
文件 3218 2016-12-21 16:01 calib_point\calib_point\Debug\calib_point.log
文件 505984 2016-12-21 16:01 calib_point\calib_point\Debug\calib_point.obj
文件 8342 2016-12-21 16:01 calib_point\calib_point\Debug\cl.command.1.tlog
文件 3318 2016-12-21 15:59 calib_point\calib_point\Debug\custombuild.command.1.tlog
文件 694 2016-12-21 15:59 calib_point\calib_point\Debug\custombuild.read.1.tlog
文件 1078 2016-12-21 15:59 calib_point\calib_point\Debug\custombuild.write.1.tlog
文件 180149 2016-12-21 11:32 calib_point\calib_point\Debug\displaywgt.obj
文件 3208 2016-12-21 16:01 calib_point\calib_point\Debug\li
文件 6276 2016-12-21 16:01 calib_point\calib_point\Debug\li
文件 1268 2016-12-21 16:01 calib_point\calib_point\Debug\li
文件 125840 2016-12-21 16:00 calib_point\calib_point\Debug\main.obj
文件 130758 2016-12-21 16:00 calib_point\calib_point\Debug\moc_calib_point.obj
文件 99511 2016-12-21 11:25 calib_point\calib_point\Debug\moc_displaywgt.obj
文件 474 2016-12-21 16:01 calib_point\calib_point\Debug\mt.command.1.tlog
文件 660 2016-12-21 16:01 calib_point\calib_point\Debug\mt.read.1.tlog
文件 288 2016-12-21 16:01 calib_point\calib_point\Debug\mt.write.1.tlog
文件 5186 2016-12-21 11:25 calib_point\calib_point\Debug\qrc_calib_point.obj
文件 1888256 2016-12-21 16:01 calib_point\calib_point\Debug\vc100.pdb
............此处省略26个文件信息
- 上一篇:delphi算法与数据结构
- 下一篇:学生毕业设计-宿舍管理系统设计与实现.rar
评论
共有 条评论