2 Star 2 Fork 2

李志强/handtrack

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mainwindow.cpp 1.49 KB
一键复制 编辑 原始数据 按行查看 历史
gikieng 提交于 2014-11-27 21:05 . 整理一下代码
#include "mainwindow.h"
#include <QDebug>
#include <QThread>
#include <QTimer>
using namespace cv;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
isWork = 0;
camera = cvCreateCameraCapture(CV_CAP_V4L2);
src = cvCreateImage(cvSize(480, 480), 8, 3);
Icr = cvCreateImage(cvSize(480, 480), 8, 1);
if(!camera)return;
QTimer *timer= new QTimer();
QHBoxLayout *hbox = new QHBoxLayout();
btn = new QPushButton("开始");
label = new QLabel("值");
hbox->addWidget(label);
hbox->addWidget(btn);
QWidget *widget = new QWidget();
widget->setLayout(hbox);
this->setCentralWidget(widget);
connect(btn, SIGNAL(clicked()), this, SLOT(changeWorkState()));
connect(timer, SIGNAL(timeout()), this, SLOT(work()));
timer->start(20);
this->show();
//work();
}
MainWindow::~MainWindow()
{
isWork = -1;
cvReleaseCapture(&camera);
cvReleaseImage(&src);
cvReleaseImage(&Icr);
}
void MainWindow::changeWorkState()
{
isWork ^= 1;
if(isWork){
btn->setText("关闭");
}
else btn->setText("开始");
}
QString Dir[5] = {"左", "下", "上", "右", "中"};
void MainWindow::work()
{
if(isWork == 1)
{
I = cvQueryFrame(camera);
if(!I) return;
cvResize(I, src);
otsu(src, Icr);
//qDebug()<< findContours(Icr);
CvPoint point = det.Detect(Icr, Icr);
if(point.x == -1) return;
label->setText(Dir[detectCode(point, Icr->width, Icr->height)]);
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/gikieng/handtrack.git
git@gitee.com:gikieng/handtrack.git
gikieng
handtrack
handtrack
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385