資源簡介
功能介紹:
選擇圖片坐標,注意是坐標是對應原有的圖片坐標,與圖片的縮放沒有關系。即不管放大縮小多少,右下角的坐標一定對應著原始圖片的大小。
每選擇一個點,確認一次,存入數據。可以快捷鍵(空格鍵);
確認兩個點后,當前目標已經確認,顯示矩形框,同時顯示寫入信息的數據;
確認數據之后,覺得數據不對,可以撤銷當前(還未保存至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?< 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
評論
共有 條評論