小编Sil*_*lex的帖子

离散傅立叶变换实现给出的结果与 OpenCV DFT 不同

我们已经实现了 DFT,并想用 OpenCV 的实现来测试它。结果不同。

  1. 我们的 DFT 的结果是按从小到大的顺序排列的,而 OpenCV 的结果没有任何顺序。
  2. 两次计算的第一个(第 0 个)值相同,在本例中,复数部分为 0 (因为公式中的 e^0 = 1)。其他值不同,例如 OpenCV 的结果包含负值,而我们的结果不包含。

这是我们对 DFT 的实现:

// complex number
std::complex<float> j;
j = -1;
j = std::sqrt(j);
std::complex<float> result;
std::vector<std::complex<float>> fourier; // output

// this->N = length of contour, 512 in our case
// foreach fourier descriptor
for (int n = 0; n < this->N; ++n)
{
    // Summation in formula
    for (int t = 0; t < this->N; ++t)
    {
        result += …
Run Code Online (Sandbox Code Playgroud)

c++ opencv dft fourier-descriptors

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

如何在单例内创建QML对象?

我在下面定义了一个QML对象MyQMLObject.qml.此QML文件如下所示:

import QtQuick 2.4

Item {
  id: rootItem
  implicitWidth: LayoutUtils.maxImplicitWidth(children)
  implicitHeight: LayoutUtils.maxImplicitHeight(children)

  Text {
    id: text1
  }
  Text {
    id: text2
  }
  // ...
  Text {
    id: textN
  }
}
Run Code Online (Sandbox Code Playgroud)

应用程序启动时会动态添加文本.对于每种语言,添加不同的文本,其宽度rootItem因所选语言而异.我想以某种方式MyQMLObject在应用程序启动时只创建一次,甚至没有将其可视化并将其实际宽度保存在单例中,例如,因此我可以在整个代码中重用该值,而无需创建MyQMLObject多一次.我怎么能实现这个目标?

现在我有一个单独的QML文件,它包含一个QtObject包含一些常量值的文件.我可以以某种方式MyQMLObject在这个单例中创建一个实例QtObject吗?

我的单身人士Style.qml看起来像这样:

pragma Singleton

import QtQuick 2.4

QtObject {
  readonly property int maxWidth: 400
  // ...
}
Run Code Online (Sandbox Code Playgroud)

qt qml qt5

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

零宽度或高度与QML中的可见属性

将组件设置为零widthheight设置为零与设置其visible属性具有相同的效果false吗?

一个用例示例:

我有一个项目,滑入窗口.从动画的高度滑动发生0x,当我从关闭此项目x0.不想深入了解为什么我没有动画项目的位置.当项目的高度为0时,我应该将其visible属性设置为false或者它没有任何区别吗?

qt qml

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

未找到自定义 QML 模块

我有一个 QML 应用程序。我创建了自己的 QML 模块。叫MyCustomModule. 模块有相应的qmldir文件,注册到相应的my_custom_module.qrc文件中。我还在 C++ 中的应用程序启动时添加了导入路径addImportPath("qrc:///my_custom_module");。我正在使用 CMake 而不是 QMake。

无论我在哪里导入MyCustomModuleQtCreator 都会告诉我QML module not found,但是当我构建应用程序时,构建没有任何问题并运行。

我错过了什么吗?

qt qml qt5

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

如何检查Eigen :: Matrix4f是否接近单位矩阵?

是否有一个很好的做法来检查我的结果Eigen :: Matrix4f是否几乎是同一性?由于浮点错误,我不会在某些时候只得到零和一些.

一种强力方法是检查矩阵中的每个值,如果它在某个EPSILON之间并且如果只有其中一个失败,则它不是单位矩阵.有更好的解决方案吗?

matrix floating-accuracy eigen

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

在结束范围后,提升共享指针"运行时错误"

我正在练习使用boost,现在我正在测试boost共享指针.我有一个可以读取文件的Util类.读完文件后,我的"Read"方法返回一个指向文件内容的boost :: shared_ptr.然后我将这个共享指针传递给我的Parser类,它逐行解析字符串.解析完成后,然后在我的Parser类构造函数的末尾(在'}'),我得到一个"运行时错误",它指向一个boost头文件.更具体地说,check_delete.hpp到"删除x"行:

template<class T> inline void checked_delete(T * x) {
   // intentionally complex - simplification causes regressions
   typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
   (void) sizeof(type_must_be_complete);
   delete x;
}
Run Code Online (Sandbox Code Playgroud)

简化的代码看起来像这样:

class File {
    string _path;
public:
    File(string path)
    ~File()
    void Open();
    boost::shared_ptr<string> Read();
    void Close();
};

class Parse {
public:
    Parse(string path) {
        File file = File(path);
        file.Open();
        boost::shared_ptr<string> fileContentPtr = file.Read();
        StartParsing(fileContentPtr);
        file.Close();
    }
    ~Parse();
    StartParsing(boost::shared_ptr<string> fileContentPtr);
};

int main() {
string path = "<some path to my …
Run Code Online (Sandbox Code Playgroud)

c++ boost shared-ptr

0
推荐指数
1
解决办法
457
查看次数

标签 统计

qml ×3

qt ×3

c++ ×2

qt5 ×2

boost ×1

dft ×1

eigen ×1

floating-accuracy ×1

fourier-descriptors ×1

matrix ×1

opencv ×1

shared-ptr ×1