小编Ang*_*ano的帖子

尺寸和响应在SURF关键点中的确切代表什么?

我正在使用OpenCV 2.3进行关键点检测和匹配.但我对检测算法给出的参数sizeresponse参数有点困惑.他们究竟是什么意思?

基于OpenCV手册,我无法弄清楚:

float size:有意义的关键点邻域的直径

float response:选择最强关键点的响应.可用于进一步分类或子采样

我认为跟踪的最佳点是响应最快的那个,但似乎并非如此.那么我怎样才能对冲浪探测器返回的关键点进行二次采样,以便在可跟踪性方面保持最佳?

opencv surf feature-detection template-matching video-tracking

20
推荐指数
2
解决办法
1万
查看次数

如何在Qt中暂时断开信号与插槽的连接?

我用一个信号连接一个插槽.但现在我想暂时断开它们.

这是我的班级声明的一部分:

class frmMain : public QWidget
{
    ...
private:
    QTimer *myReadTimer;
    ...
private slots:
    void on_btnDownload_clicked();
    ...
};
Run Code Online (Sandbox Code Playgroud)

在构造函数中frmMain,我连接myReadTimer一个插槽,以便ReadMyCom每5秒调用一次:

myReadTimer=new QTimer(this);
myReadTimer->setInterval(5000);
connect(myReadTimer,SIGNAL(timeout()),this,SLOT(ReadMyCom()));
Run Code Online (Sandbox Code Playgroud)

但是,在插槽中on_btnDownload_clicked.我不想myReadTimeron_btnDownload_clicked范围内发出任何信号.所以我想在开始时断开它们on_btnDownload_clicked并最终重新连接它们.像这样:

void frmMain::on_btnDownload_clicked()
{
    //some method to disconnect the slot & singal

    ...//the code that I want myReadTimer to leave me alone

    //some method to reconnect the slot & singal
}
Run Code Online (Sandbox Code Playgroud)

我在Stackoverflow中搜索并获得了一些答案,比如调用QObject析构函数.但我不知道如何使用它.

我也试过用disconnect,比如:

QMetaObject::Connection myConnect;
myConnect=connect(myReadTimer,SIGNAL(timeout()),this,SLOT(ReadMyCom()));
...
disconnect(& …
Run Code Online (Sandbox Code Playgroud)

qt signals-slots

19
推荐指数
2
解决办法
2万
查看次数

使用光流进行OpenCV跟踪

我使用它作为我的跟踪算法的基础.

    //1. detect the features
    cv::goodFeaturesToTrack(gray_prev, // the image 
    features,   // the output detected features
    max_count,  // the maximum number of features 
    qlevel,     // quality level
    minDist);   // min distance between two features

    // 2. track features
    cv::calcOpticalFlowPyrLK(
    gray_prev, gray, // 2 consecutive images
    points_prev, // input point positions in first im
    points_cur, // output point positions in the 2nd
    status,    // tracking success
    err);      // tracking error
Run Code Online (Sandbox Code Playgroud)

cv::calcOpticalFlowPyrLK将前一图像中的点矢量作为输入,并在下一图像上返回适当的点.假设我在前一个图像上有随机像素(x,y),如何使用OpenCV光流功能计算下一个图像上该像素的位置?

c++ opencv tracking computer-vision

18
推荐指数
1
解决办法
5万
查看次数

OpenCV Homography,转换点,这段代码在做什么?

我正在使用OpenCV计算的单应性.我目前使用此单应性来使用下面的函数转换点.这个函数执行我需要的任务但是我不知道它是如何工作的.

任何人都可以一行一行地解释最后3行代码背后的逻辑/理论,我知道这会改变点x,y但是我不清楚它为什么会起作用:

为什么Z,pxpy以这种方式计算,元素h对应的是什么?

非常感谢您的评论:)

double h[9];
homography = cvMat(3, 3, CV_64F, h);
CvMat ps1 = cvMat(MAX_CALIB_POINTS/2,2,CV_32FC1, points1);
CvMat ps2 = cvMat(MAX_CALIB_POINTS/2,2,CV_32FC1, points2);

cvFindHomography(&ps1, &ps2, &homography, 0);

...

// This is the part I don't fully understand
double x = 10.0;
double y = 10.0;
double Z = 1./(h[6]*x + h[7]*y + h[8]);
px = (int)((h[0]*x + h[1]*y + h[2])*Z);
py = (int)((h[3]*x + h[4]*y + h[5])*Z);
Run Code Online (Sandbox Code Playgroud)

opencv transform matrix homography perspective

17
推荐指数
2
解决办法
2万
查看次数

如何在Qt5中将动画图标设置为QPushButton?

QPushButton可以有图标,但我需要设置动画图标.这该怎么做?我创建了新的类,QPushButton但是如何将icon替换QIconQMovie

icons animation qt qt5 qpushbutton

17
推荐指数
2
解决办法
9198
查看次数

OpenCV线拟合算法

我正在尝试了解OpenCV fitLine()算法.

这是来自OpenCV的代码片段: icvFitLine2Dfunction - icvFitLine2D

我看到有一些随机函数选择点进行近似,然后计算从点到拟合线的距离(选择点),然后选择其他点并尝试最小化距离并选择distType.

有人可以澄清从没有硬数学并假设没有伟大的统计知识的这一刻发生的事情吗?OpenCV代码注释和变量名称无助于我理解这段代码.

algorithm statistics opencv curve-fitting

15
推荐指数
1
解决办法
3万
查看次数

在Qt Creator中推广小部件

Qt创建者可以选择将一个窗口小部件推广到从基本窗口小部件派生的自定义创建的类 - 我想用它来将窗口小部件升级到当前项目中的类.Qt创建者问我关于类名和头文件名,这些值直接转到*.ui文件,然后转到ui_myform.h - 问题是这个文件可能(并且通常是)在源代码树外生成(在构建树中) )可以在任意位置,因此在推广窗口中直接指定路径无济于事.如何让QtCreator/uic知道在哪里寻找正确的标题?它甚至可能吗?

也许有一些Qt变量specyfying源树的位置,我可以插入头文件名字段?

我正在使用自编译的QtCreator 2.0.1 +自编Qt 4.7.1.

编辑:

为什么不能只输入头文件的完整路径名?

如果我将移动源代码树,或者甚至在网上共享它,那么每个想要编译我的项目的人都必须在Qt创建者或源文件中编辑这个路径 - 两者都是不可接受的.

qt promoting qt-creator

14
推荐指数
1
解决办法
2万
查看次数

OpenCV vs Matlab:带有imread的像素的不同值

imread()在使用jpg文件的Windows 7上遇到了Matlab(2014)和OpenCV(3.0)中的函数问题.

通过读取相同的文件jpg和相同的像素,我没有相同的值.

这是我的2个代码:(OpenCV代码后跟Matlab代码)和我的值(模式调试在OpenCV中看到,键盘在Matlab中)

#include <opencv2\opencv.hpp>
#include <cstdio>

using namespace cv;
using namespace std;

int main()
{
     Mat img = imread("test.jpg");

     uchar pb = img.at<Vec3b>(0, 0).val[0];
     uchar pg = img.at<Vec3b>(0, 0).val[1];
     uchar pr = img.at<Vec3b>(0, 0).val[2];

     int d = img.depth();

     int t = img.type();
}
Run Code Online (Sandbox Code Playgroud)

价值观:

     pixel [0,0] = (147,174,204); // = index(1,1) in the image.
     d = 0;
     t = 16;
Run Code Online (Sandbox Code Playgroud)

代码Matlab:

img = imread('test.jpg');

img(1,1,:)

whos img
Run Code Online (Sandbox Code Playgroud)

价值观:

ans(:,:,1) =
148

ans(:,:,2) =
174

ans(:,:,3) = …
Run Code Online (Sandbox Code Playgroud)

matlab jpeg opencv imread opencv3.0

14
推荐指数
1
解决办法
2453
查看次数

需要类似QWidget的完成信号

我正在寻找类似于完成信号的东西QDialog,仅用于QWidget.原因是,一旦窗口小部件弹出(我根本不是问题),我禁用我的工具栏,并且我希望在关闭窗口小部件后再次启用工具栏.

我也无法覆盖该窗口小部件的close-Event,因为那时我们将在业务类中使用GUI代码.

qt signals qwidget

13
推荐指数
2
解决办法
2万
查看次数

任何STL数据结构,如对,给出三个项目(类型)而不是两个?

问题1:

我正在使用C++ 11,我正在学习.我意识到我可以用两对来做到这一点:

pair<pair<<#class _T1#>, <#class _T2#>>, <#class _T3#>>
Run Code Online (Sandbox Code Playgroud)

这是最好的方式吗?

问题2:

如果我不需要不同的类型,两个项目的类型相同,使用对是浪费,那么我应该使用什么?三件物品?(同样的类型)

c++ data-structures c++11 std-pair

13
推荐指数
1
解决办法
1万
查看次数