小编Sub*_* S.的帖子

如何在CMake中激活C++ 11?

当我尝试运行CMake生成的makefile来编译我的程序时,我得到了错误

C++ 98模式不支持基于范围的循环.

我尝试添加add_definitions(-std=c++0x)到我的CMakeLists.txt,但它没有帮助.我也试过这个:

if(CMAKE_COMPILER_IS_GNUCXX)
    add_definitions(-std=gnu++0x)
endif()
Run Code Online (Sandbox Code Playgroud)

当我这样做时g++ --version,我得到:

g ++(Ubuntu/Linaro 4.6.1-9ubuntu3)4.6.1

我也试过SET(CMAKE_CXX_FLAGS "-std=c++0x"),这也行不通.

我不明白如何使用CMake激活C++ 11功能.

cmake c++11

349
推荐指数
12
解决办法
35万
查看次数

使用Auto和Lambda处理Signal?

我编写了这个程序,它有一个main函数,在其中,我创建了两个套接字,如下所示:

int sockfd1 = socket(AF_INET, SOCK_STREAM, 0);
int sockfd2 = socket(AF_INET, SOCK_STREAM, 0);
Run Code Online (Sandbox Code Playgroud)

现在我用它们做一些事情,当用户按下Ctrl + C终止进程时,我想确保套接字正确关闭,所以我这样做:

auto sigTermHandler = [&] (int param) { close(sockfd1); close(sockfd2); };
signal(SIGTERM, sigTermHandler);
Run Code Online (Sandbox Code Playgroud)

但是这会在编译时抛出以下编译错误g++ -std=gnu++0x <filename>.cpp:

error: cannot convert ‘main(int, char**)::<lambda(int)>’ to ‘__sighandler_t {aka void (*)(int)}’ for argument ‘2’ to ‘void (* signal(int, __sighandler_t))(int)’
Run Code Online (Sandbox Code Playgroud)

是不是可以用这种方式处理信号?请指教.

PS我知道我可以把它放在析构函数中,如果我做了适当的OOP,但我很想知道这是否有效.

c++ lambda posix signals c++11

15
推荐指数
2
解决办法
5915
查看次数

有效地将SublimeText与SublimeClang一起用于CMake/C++项目

我一直试图使用SublimeText2一段时间了.虽然使用Python几乎可以很容易地使用它,但使用C++会有点棘手.我可以设法通过复制和修改现有的Makefile脚本来设置CMake构建脚本,但有很多东西不像在CMake支持的IDE中那样工作,比如Eclipse CDT.SublimeText 2似乎不理解单独的构建目录的概念,如果我包含参考CMake中添加的目录的库,它也无法让我通过SublimeClang自动完成.SublimeClang一直在抱怨它无法找到库,当我尝试时#include,它甚至无法在标准STL头文件名上提供自动完成功能,例如算法.如果有人找到了管道,我将不得不听到它.

我之前在更多通用的使用相关论坛中问过这个问题,我没有得到任何回复,这就是我想在这里发帖的原因.

c++ autocomplete cmake sublimetext sublimetext2

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

如何在Arch Linux上安装python2.7特定包?

我正在从头开始构建Arch Linux系统,目前系统中没有Python.我可以使用以下命令安装Python2.7:

pacman -S python2
Run Code Online (Sandbox Code Playgroud)

但是当我尝试为python安装一些软件包时:

pacman -S python-numpy
Run Code Online (Sandbox Code Playgroud)

Pacman只显示下载Python3.x的选项和Python3.x的numpy.没有其他选择.我如何确保在搜索Python内容时,它只根据我安装的Python版本进行搜索?我的系统中没有Python3,我根本不需要它.在我的Ubuntu系统中,我没有指定Python版本,但总是要处理它.我不知道如何在Arch Linux中处理这个问题.

提前致谢!

archlinux python-2.7

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

如何在Python中访问超类的元属性?

我有一些像Django-Tastypie这样的代码:

class SpecializedResource(ModelResource):
    class Meta:
        authentication = MyCustomAuthentication()

class TestResource(SpecializedResource):
    class Meta:
        # the following style works:
        authentication = SpecializedResource.authentication
        # but the following style does not:
        super(TestResource, meta).authentication
Run Code Online (Sandbox Code Playgroud)

我想知道在没有硬编码超类名称的情况下访问超类的元属性的正确方法是什么.

python django

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

如何将自定义元数据添加到OpenCV / numpy图像?

我有个问题。

我正在OpenCV中对某些捕获的图像执行一系列操作(调整大小,复制等),但是我想对这些图像设置一些特定的元数据(属性名称也应由我定义),这些操作将保留下来。并可以稍后提取。我没有设置分辨率值或这些操作后会更改的任何其他值。我怎样才能做到这一点?我听说过pyexiv2,但从未见过涉及OpenCV的示例。

提前致谢!

python opencv numpy image-processing python-2.7

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

如何在OpenCV中对齐Kinect的RGB和深度图像?

我有一个C++项目,我正在使用OpenCV和Libfreenect.我不希望包含像OpenNI那样大而重的东西,并在此过程中创建OpenCV安装依赖项.我想使用此处提供的校准信息解决并对齐RGB和深度图像.

基于相机矩阵和失真系数单独地分解图像非常容易.但现在我对如何使用校正和投影矩阵来对齐RGB和深度图像感到困惑,因此它们基本上从同一个角度向我展示了相同的东西.经过一段时间的搜索,我无法确定如何使用OpenCV.这是一个模糊的估计,可能会使用reprojectImageTo3D()warpPerspective(),但我不知道如何.

我怎么能解决这个问题?我正在使用旧的XBOX360 Kinect(0-2047原始差异值范围).

UPDATE

这是我到目前为止编写的部分代码:

// I use callback functions to get RGB (CV_8UC3) and depth (CV_16UC1)
// I undistort them and call the following method
void AlignImages(cv::Mat& pRGB, cv::Mat& pDepth) {

    rotationMat = (cv::Mat_<double_t>(3,3) << 9.9984628826577793e-01, 1.2635359098409581e-03, -1.7487233004436643e-02, -1.4779096108364480e-03, 9.9992385683542895e-01, -1.2251380107679535e-02, 1.7470421412464927e-02, 1.2275341476520762e-02, 9.9977202419716948e-01);
    translationMat = (cv::Mat_<double_t>(3,1) << 1.9985242312092553e-02, -7.4423738761617583e-04, -1.0916736334336222e-02);


    // make a copy in float to convert raw depth data to physical distance
    cv::Mat tempDst;
    pDepth.convertTo(tempDst, CV_32F);

    // …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing kinect openkinect

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

在 Jenkins Pipeline 中生成自定义 GitSCM 变更日志

我有一个 Jenkins (2.36) 管道工作,在那里我检查了一个 git 项目,我想控制进入变更日志的内容:

CHANGELOG = ""
CHECK_SINCE = 1488326400

stage('Fetch') {
    node('docker') {
        checkout([$class: 'GitSCM', branches: [[name: '*/develop']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'WipeWorkspace'], [$class: 'AuthorInChangelog']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '...', url: '...']]])
        CHANGELOG = sh(returnStdout: true, script: "git log --after ${CHECK_SINCE} --pretty=fommit %H %ntree %T %nparent %P %nauthor %an <%ae> %ad %ncommiter %cn <%ce> %cd %n %n    %s %n %n %n' --raw --no-abbrev").trim()
        docker.build("pipeline_test", "tools/build").inside {
            sh 'echo HELLO!'
        }
    }
}

stage('Update') {
    node('master') {
        fileExists …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins jenkins-pipeline

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

如何从图中提取点?

我有个问题.

我使用Matplotlib绘制了一个图形,如下所示:

from matplotlib import pyplot
import numpy
from scipy.interpolate import spline

widths = numpy.array([0, 30, 60, 90, 120, 150, 180])
heights = numpy.array([26, 38.5, 59.5, 82.5, 120.5, 182.5, 319.5])

xnew = numpy.linspace(widths.min(),widths.max(),300)
heights_smooth = spline(widths,heights,xnew)

pyplot.plot(xnew,heights_smooth)
pyplot.show()
Run Code Online (Sandbox Code Playgroud)

现在我想使用宽度值作为参数查询高度值.我似乎无法找到如何做到这一点.请帮忙!提前致谢!

python numpy matplotlib scipy

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

2D numpy ndarray的交叉点

我有个问题.

我有两个numpy数组是OpenCV凸包,我想检查交集而不创建for循环或创建图像并对numpy.bitwise_and它们执行,这两者在Python中都很慢.数组看起来像这样:

[[[x1 y1]]
 [[x2 y2]]
 [[x3 y3]]
...
 [[xn yn]]]
Run Code Online (Sandbox Code Playgroud)

考虑[[x1 y1]]作为一个单独的元素,我想在两个numpy ndarray之间执行交集.我怎样才能做到这一点?我发现了几个类似性质的问题,但我无法从中找出解决方法.

提前致谢!

python opencv numpy

5
推荐指数
2
解决办法
9281
查看次数