小编Ang*_*ano的帖子

QTableView selectionChanged

我有一个QTableView我需要从中获取selectionChanged事件.我似乎无法使连接工作.我有:

MyWidget.h

...

protected slots:
 void slotLoadTransaction(const QItemSelection & selected, const QItemSelection & deselected);
private:
 QTableView table;
Run Code Online (Sandbox Code Playgroud)

...

MyWidget.cpp

...

 connect(
  table->selectionModel(),
  SIGNAL(selectionChanged(const QItemSelection & selected, const QItemSelection & deselected)),
  this,
  SLOT(slotLoadTransaction(const QItemSelection & selected, const QItemSelection & deselected))
 );
Run Code Online (Sandbox Code Playgroud)

...

在运行时,我得到"No such Signal"错误.

qt qt4 selection

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

如何从opencv 3.0 Beta中的文件中读取UMat?

我想使用,UMat所以我的代码可以使用OpenCL(Op​​enCV 3.0.0 Beta)在GPU和CPU上运行.

但我找不到一种方法将图像文件读入UMat或转换MatUMat.

如何将图像读入UMat

c++ opencv opencl

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

QImage/QPixmap大小限制?

是否记录了任何已知的尺寸/空间限制QPixmap和/或QImage对象?我没有找到任何有用的信息.我目前在OSX和Windows上使用Qt 4.7.3.特别是我对以下内容感兴趣:

  • 宽度/高度限制?
  • 限制取决于颜色格式?
  • 32/64位机器之间的区别?
  • 关于OS的区别?

我天真地怀疑记忆是唯一的限制因此,人们可以通过计算最大尺寸

width x height x byte_per_pixel

我认为有一个更精细的经验法则; 当你遇到GB尺寸时,32位机器也可能有解决问题.

最后,我希望存储大小约为16000x16000像素的多个RGBA图像,并在a中使用透明度将它们渲染到彼此QGraphicsScene.可用的工作站可以有很多RAM,比方说16GB.

tl; dr:您了解QImage/QPixmap的大小限制,或者我在哪里可以找到此类信息?

编辑:我知道平铺方法,我很好.知道上述事情仍然会很棒.

谢谢!

qt qt4 qpixmap qimage

11
推荐指数
2
解决办法
8698
查看次数

OpenCV:VideoCapture :: get(CV_CAP_PROP_FPS)返回0 FPS

我试图从我的相机获取fps,以便我可以将其传递给VideoWriter输出视频.但是,我通过VideoCapture::get(CV_CAP_PROP_FPS)相机调用获得0 fps .如果我硬编码,我的视频可能太慢或太快.

#include "opencv2/opencv.hpp"
#include <stdio.h>
#include <stdlib.h>

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{
    cv::VideoCapture cap;
    int key = 0;

    if(argc > 1){
        cap.open(string(argv[1]));
    }
    else
    {
        cap.open(CV_CAP_ANY);
    }
    if(!cap.isOpened())
    {
        printf("Error: could not load a camera or video.\n");
    }

    Mat frame;
    cap >> frame;
    waitKey(5);

    namedWindow("video", 1);
    double fps = cap.get(CV_CAP_PROP_FPS);
    CvSize size = cvSize((int)cap.get(CV_CAP_PROP_FRAME_WIDTH),(int)cap.get(CV_CAP_PROP_FRAME_HEIGHT));

    int codec = CV_FOURCC('M', 'J', 'P', 'G');
    if(!codec){ waitKey(0); return 0; }
    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ windows camera opencv avi

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

从Homography矩阵计算尺度,旋转和平移

我正在尝试计算视频的两个连续帧之间的缩放,旋转和平移.所以基本上我匹配关键点然后使用opencv函数findHomography()来计算单应矩阵.
homography = findHomography(feature1 , feature2 , CV_RANSAC); //feature1 and feature2 are matched keypoints

我的问题是:我如何使用此矩阵来计算比例,旋转和平移?
任何人都可以提供代码或解释如何做到这一点?

c++ video opencv matrix homography

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

如何检查C++中的其他应用程序是否已打开文件?

我知道,is_open()C++ 中有这个功能,但是我想要一个程序检查一个文件是否还没有被其他应用程序打开.有没有办法使用标准库?

编辑 - 澄清答案,这是一个Linux应用程序.

c++ linux file-io process

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

显示隐藏的QTableView列

我正在尝试做一些看起来应该非常简单的事情,但是我越是调查它,我想知道它是否是一个Qt错误.

所以,我有一个QTableView可以按用户喜欢显示/隐藏的列.在我初始化表之后,我调用了一个自定义restoreColumns()方法,该方法隐藏QTableView::hideColumn()了用户在上次打开GUI时隐藏的列(使用).

当用户尝试显示上次运行GUI时用户隐藏的列时,就会出现问题.调用适当的信号/插槽并运行但由于某种原因QTableView未更新以显示列.

奇怪的是,任何已经显示的列(上次运行GUI时用户都没有隐藏)都没有隐藏/显示的问题.

有什么想法吗?谢谢!


这是我如何初始化表...

m_tableModel = new mytablemodel();
m_tableView = new mytableview();
m_tableView->setItemDelegate(m_tableDelegate);
m_tableView->setModel(m_tableModel);
Run Code Online (Sandbox Code Playgroud)

restoreColumns()方法的肉:

for (int i=0; i<horizontalHeader()->count(); i++) {
    // load size to restore previous width
    ...
    horizontalHeader()->resizeSection(i, width); // restore width

    // load previous column position
    ...
    // restore column order
    int currentVisualIndex = horizontalHeader()->visualIndex(i);

    if (currentVisualIndex != visualIndex) 
        horizontalHeader()->moveSection(currentVisualIndex, visualIndex);

    // load previous hidden/shown state
    ...
    if (columnHidden) {
        hideColumn(i);
    } else {
        showColumn(i);
    }
} …
Run Code Online (Sandbox Code Playgroud)

qt qt4 qtableview

10
推荐指数
1
解决办法
3932
查看次数

OpenCV:用于查找单应性的RANSAC置信度参数

OpenCV函数findhomography()在两个图像的匹配点之间找到单应变换.(见定义)

为了找到匹配的点子集,可以使用RANSAC.

这是一个问题:与OpenCV中使用RANSAC的其他功能(例如findfundamentalMat(参见定义))相比,RANSAC 置信度 参数不能改变.只有重投影阈值可以作为参数传递.

我查看了OpenCV源代码,并且findhomography()信心被硬编码为0.995.

为了我的目的,我需要增加这个.有没有办法在不更改OpenCV源本身的值的情况下执行此操作?

这有什么理由应该硬编码吗?

PS:我在Ticket 1557下添加了一个更改请求,用于下一次颠覆.

opencv image-processing homography

10
推荐指数
2
解决办法
7166
查看次数

MATLAB使用OpenCv CascadeClassifier吗?

CascadeObjectDetector在MATLAB中有一个问题.在CascadeObjectDetectorMATLAB的源代码中,我看到:

pCascadeClassifier; % OpenCV pCascadeClassifier 
Run Code Online (Sandbox Code Playgroud)

然后我看到:

%------------------------------------------------------------------
% Constructor
%------------------------------------------------------------------
function obj = CascadeObjectDetector(varargin)              
    obj.pCascadeClassifier = vision.internal.CascadeClassifier;
    ...
end
Run Code Online (Sandbox Code Playgroud)

并在stepImpl:

bbox = double(obj.pCascadeClassifier.detectMultiScale(I, ...
            double(obj.ScaleFactor), ...
            uint32(obj.MergeThreshold), ...            
            uint32(obj.MinSize), ...
            uint32(obj.MaxSize)));
Run Code Online (Sandbox Code Playgroud)

你知道vision.internal.CascadeClassifier吗,是什么?它只是OpenCV CascadeClassifier吗?detectMultiScale功能的源代码在哪里?

matlab opencv vision matlab-cvst

10
推荐指数
1
解决办法
1750
查看次数

防止QGraphicsItem移出QGraphicsScene

我有一个固定尺寸从(0; 0)到(481; 270)的场景:

scene->setSceneRect(0, 0, 481, 270);
Run Code Online (Sandbox Code Playgroud)

在它内部,我有一个自定义GraphicsItem,我可以移动它感谢旗帜ItemisMovable,但我希望它留在场景中; 我的意思是我不希望它的坐标既不在(0; 0)之下也不在(481; 270)之下.

我尝试过几种解决方案,比如压倒一切QGraphicsItem::itemChange(),QGraphicsItem::mouseMoveEvent()但我仍然无法达到我想做的目标.

什么是适合我需求的解决方案?我使用QGraphicsItem::itemChange()得不好吗?

提前致谢.

qt qgraphicsitem qgraphicsscene

10
推荐指数
3
解决办法
4472
查看次数