小编SPV*_*SPV的帖子

Makefile在Ubuntu/Linux上用C++编译OpenCV代码

我正在使用Learning OpenCV学习OpenCV.

编译代码时我遇到的一个问题是我必须编写一个很长的命令来编译并获取可执行文件.

这是我正在使用的命令

g++ `pkg-config –cflags opencv` file_name.cpp -o output_file `pkg-config –libs opencv`
Run Code Online (Sandbox Code Playgroud)

我没有制作专家,但我想我可以消除写使用很长的命令作出.在此之前,我应该解释我的工作流程.我在我的主目录(~/opencv/)中创建了一个名为opencv的目录.我正逐节阅读本书,并将示例或练习编码到该目录中的新cpp源代码文件中.所以我不知道手头的文件名.

现在我想要做的是,

假设我编写了一个facedetect.cpp在我的opencv目录中命名的新文件,如果我调用make就像这样

make facedetect
Run Code Online (Sandbox Code Playgroud)

然后我想让make为我执行以下命令

g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv`
Run Code Online (Sandbox Code Playgroud)

所以每当我创建一个名为abc.cpp的新文件时,我都会执行make abc 以便我可以运行

$ ./abc
Run Code Online (Sandbox Code Playgroud)

在我的命令行测试我的abc.cpp

请给出make文件,这样我就可以省去每次输入那个长命令的挫败感.

PS:我用Google搜索的帮助就这个问题和发现这种使用CMake的,但我不明白是什么一样.还请解释如何使用CMake执行相同的任务.

opencv makefile compilation cmake

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

allclose - 如何在Julia中检查两个数组是否接近

在numpy中,您可以np.allclose(A, B)查看阵列A和B是否接近.

朱莉娅有没有这样做的功能?

numpy julia

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

Iterator和反向迭代器之间的区别

以下两个代码片段之间有什么区别.

vector<int> a;
// initialization code
sort( a.rbegin(), a.rend() );
Run Code Online (Sandbox Code Playgroud)

vector<int> a;
// same initialization as above
sort(a.begin(), a.end(), comp);
Run Code Online (Sandbox Code Playgroud)

其中comp是下面给出的布尔函数

bool comp( int i, int j)
{
    return i>j;
}
Run Code Online (Sandbox Code Playgroud)

为了说明,下面的代码给出了WA,而这段代码为SPOJ问题XMAX提供了AC.ACWA之间的唯一区别是使用的sort()版本.

c++ algorithm comparison stl stable-sort

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

为什么我的程序会打印垃圾?

我的代码:

#include <iostream>
#include <thread>

void function_1()
{
    std::cout << "Thread t1 started!\n";
    for (int j=0; j>-100; j--) {
        std::cout << "t1 says: " << j << "\n";
    }
}

int main()
{
    std::thread t1(function_1); // t1 starts running

    for (int i=0; i<100; i++) {
        std::cout << "from main: " << i << "\n";
    }

    t1.join(); // main thread waits for t1 to finish
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我创建一个thread按递减顺序打印数字,同时main按递增顺序打印.

此处输出示例.为什么我的代码打印垃圾?

c++ multithreading synchronization

4
推荐指数
2
解决办法
751
查看次数

仅将图像区域转换为灰度

我想获得一个图像,其中只有一个区域具有给定彩色图像的颜色。

Mat img = imread("lena.jpg");
Rect roi = Rect(100,  100, 300, 300);// only this should be in color in output

Mat img_yuv;
cvtColor(img, img_yuv, CV_RGB2YUV);
vector<Mat> channels(3);
split(img_yuv, channels);
Mat Y = channels[0];
Mat U = channels[1];
Mat V = channels[2];

// create mask
Mat mask = Mat::zeros(Y.size(), Y.type());
rectangle(mask, roi, Scalar(1), CV_FILLED);

// merging channels
channels[0] = Y;
channels[1] = U.mul(mask)+(Scalar::all(1)-mask).mul(Y);
channels[2] = V.mul(mask)+(Scalar::all(1)-mask).mul(Y);

Mat img_yuv_out, img_out;
merge(channels, img_yuv_out);
cvtColor(img_yuv_out, img_out, CV_YUV2RGB);
imshow("masked_color", img_out);
imshow("lena", img);
Run Code Online (Sandbox Code Playgroud)

上面的opencv代码分别是我的输入和输出图像。 输入 输出

在 roi …

c++ opencv image-processing

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

julia对应于python中的"from module import some_func"

我发现using Module在julia中相当于from Module import *在python中.有没有办法从模块导入单个函数或变量.

julia

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