小编lea*_*ner的帖子

从C++调用Python脚本并使用其输出

我想从C++调用一个python脚本,并希望将此脚本生成的输出.csv文件重新用于C++.我在main()中试过这个:

std::string filename = "/home/abc/xyz/script.py";
std::string command = "python ";
command += filename;
system(command.c_str());
Run Code Online (Sandbox Code Playgroud)

这会调用并执行python脚本.

print在Python命令正在执行.调用脚本时,屏幕上会打印出一些内容.到现在为止还挺好.但是,它不是创建.csv文件(同一脚本的一部分).

示例:我有一个training.csv包含100个条目的文件.我调用了Python脚本,对脚本几乎没有任何更改,因此training.csv文件现在应该只包含50个条目而不是100个.它被覆盖了.但是,没有这样的事情发生.脚本中的其他命令(print等)工作正常.

training.csv文件是用C++通常使用来读取fstreamgetline.

知道怎么做(使用Linux)吗?

c++ python python-2.7 python-3.x

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

如何确保两个不同的向量在C++中以相同的顺序进行混洗?

我有两个向量:

vector1 = [1 2 3 4 5 6 7 8 9]

vector2 = [1 2 3 4 5 6 7 8 9]

我想确保,当我使用random_shuffle进行随机播放时,它们应该以相同的顺序进行混洗.例如:

洗牌后的输出应该是:

vector1 = [1 9 3 4 2 7 8 5 6]

vector2 = [1 9 3 4 2 7 8 5 6]

但我得到的输出如下:

vector1 = [5 1 7 4 2 3 9 8 6]

vector2 = [3 4 1 9 8 2 5 7 6]

继承我的代码:

int main () 
{
  std::srand ( unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ random vector

18
推荐指数
3
解决办法
4285
查看次数

实时模板匹配 - OpenCV,C++

我正在尝试使用模板实现实时跟踪.我希望每帧更新模板.我所做的主要修改是:

1)将模板匹配和minmaxLoc分别分离成单独的模块,即TplMatch()minmax()函数.

2)在track()函数内部,select_flag始终保持为true,以便在每次迭代时将新模板复制到"myTemplate".

3)函数track()的最后3行是更新模板(roiImg).

4)另外,我已经删除了track()函数的任何参数,因为imgroiImg是全局变量,因此不需要将它们传递给函数.

以下是代码:

#include <iostream>
#include "opencv2/opencv.hpp"
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>

#include <sstream>


using namespace cv;
using namespace std;

Point point1, point2; /* vertical points of the bounding box */
int drag = 0;
Rect rect; /* bounding box */
Mat img, roiImg; /* roiImg - the part of the image in the bounding box */
int select_flag = …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing computer-vision template-matching

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

为什么神经网络没有预测?

我正在尝试使用反向传播算法训练神经网络.在OpenCV 2.3中.然而,它没有正确预测....甚至没有训练数据集.有人可以帮我发现这里有什么不对吗?

training_feature_matrix - 浮点值的Nx69矩阵

training_age_matrix - 浮点值的Nx4矩阵

test_feature_matrix - 浮点值的Mx69矩阵

test_age_matrix - 浮点值的Mx4矩阵

特征矩阵(如上所述)如:[0.123435,0.4542665,0.587545,... 68-这样的值+最后一个值'1.0或2.0',取决于它的男性/女性)

年龄矩阵(如上所述)如:[1,0,0,0; 1,0,0,0; 0,1,0,0; ...]这里1s显示特征矩阵所属的相应行的年龄(婴儿,儿童,成人,旧).

这是代码:我使用上面的矩阵作为参数调用'mlp'函数)

cv::Mat mlp(cv::Mat& training_feature_matrix, cv::Mat& training_age_matrix, cv::Mat& test_feature_matrix, cv::Mat& test_age_matrix)
{
cv::Mat layers = cv::Mat(3, 1, CV_32SC1);
layers.row(0)  = cv::Scalar(69);
layers.row(1)  = cv::Scalar(36);
layers.row(2)  = cv::Scalar(4);    //   cout<<layers<<"\n";

CvANN_MLP ann;
CvANN_MLP_TrainParams params;
CvTermCriteria criteria;
criteria.max_iter = 10000;
criteria.epsilon  = 0.001;
criteria.type     = CV_TERMCRIT_ITER + CV_TERMCRIT_EPS;
params.train_method = CvANN_MLP_TrainParams::BACKPROP;
params.bp_dw_scale  = 0.1;
params.bp_moment_scale = 0.1;
params.term_crit  = criteria;

ann.create(layers, CvANN_MLP::SIGMOID_SYM);
ann.train(training_feature_matrix, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv machine-learning computer-vision neural-network

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

cv :: Mat转换为Eigen-Matrix并返回

我有几个存储在cv::Matwhere中的特征向量,每一行都是一个特征向量(这里有几行像这样:) [ x1 y1 x2 y2 x3 y3.... ].我必须在每个特征向量上应用SVD,为此我使用特征库.但是,在应用SVD之前,必须将特征矩阵转换为Eigen::Matrix形式.

后来,我必须将SVD结果转换回来cv::Mat.

任何人都可以建议一个很好的方法来做到这一点?我在cv::Mat表单中需要它的原因是因为我必须在OpenCV中将其输入到神经网络,并且只cv::Mat允许输入矩阵.

谢谢!!!

c++ opencv eigen eigen3

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

从文件名中提取数字

我正在使用C++中的文件名.我需要知道如何提取文件名的某些部分?文件名如下:

/home/xyz/123b45.dat

/home/xyz/012b06c.dat

/home/xyz/103b12d.dat

/home/xyz/066b50.dat
Run Code Online (Sandbox Code Playgroud)

我想从每个文件名中提取"b"(45,06,12,50)之后的两位数并存储在数组中.有人可以建议怎么做......

c++ filenames file

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

如何从python中的文件名下划线后提取特定数字

我有许多文件名,如:

/home/abc/xyz/12345_993456_pqr
/home/abc/xyz/12345_883456_pqr
/home/abc/xyz/12345_773456_pqr
Run Code Online (Sandbox Code Playgroud)

我需要在第一个下划线之后提取前两个数字,99或者88或者77.它并不99/88/77总是......只是一个例子......我尝试过:

re.search()  
Run Code Online (Sandbox Code Playgroud)

isdigit()
Run Code Online (Sandbox Code Playgroud)

但它不起作用.有人可以帮忙吗?

python regex filenames python-2.7 python-3.x

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

恢复Qt Creator默认布局

我看到的窗口看起来像这样

我对Qt开发完全不熟悉.事实上今天是我的第一天!我安装了Qt 5.3.1开源(LGPL许可证).我在Qt Creator中环顾四周,不小心关闭了几个子窗口,无法查看实际代码,打开文件的其他列表等等.但它确实加载了项目,并在点击绿色的"运行"按钮时执行.如何恢复默认布局?菜单中没有窗口布局/视图选项.网上看不到任何东西!请帮忙...

窗口菜单

qt qt-creator

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

ffmpeg:RGB到YUV转换失去颜色和比例

我试图在ffmpeg/libav中将RGB帧转换为YUV420P格式.以下是转换代码以及转换前后的图像.转换后的图像会丢失所有颜色信息,并且尺度也会发生显着变化.有谁知道如何处理这个?我是ffmpeg/libav的新手!

// Did we get a video frame?
   if(frameFinished)
   {
       i++;
       sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data,
                 pFrame->linesize, 0, pCodecCtx->height,
                 pFrameRGB->data, pFrameRGB->linesize);                   

       //==============================================================
       AVFrame *pFrameYUV = avcodec_alloc_frame();
       // Determine required buffer size and allocate buffer
       int numBytes2 = avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,                                 
                                          pCodecCtx->height);
       uint8_t *buffer = (uint8_t *)av_malloc(numBytes2*sizeof(uint8_t));

       avpicture_fill((AVPicture *)pFrameYUV, buffer, PIX_FMT_RGB24,
                       pCodecCtx->width, pCodecCtx->height);


       rgb_to_yuv_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height,  
                                       PIX_FMT_RGB24,
                                       pCodecCtx->width,pCodecCtx->height, 
                                       PIX_FMT_RGB24,
                                       SWS_BICUBIC, NULL,NULL,NULL);

       sws_scale(rgb_to_yuv_ctx, pFrameRGB->data, pFrameRGB->linesize, 0, 
                 pCodecCtx->height, pFrameYUV->data, pFrameYUV->linesize);

       sws_freeContext(rgb_to_yuv_ctx);

       SaveFrame(pFrameYUV, pCodecCtx->width, pCodecCtx->height, i);

       av_free(buffer);
       av_free(pFrameYUV);
   }
Run Code Online (Sandbox Code Playgroud)

原始RGB24帧

RGB24-> YUV420P转换后的帧

ffmpeg video-encoding libavcodec libav libavformat

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

C/C++中的默认int主参数

我正在搞乱C/C++中的项目,我注意到了这一点:

C++

#include <iostream.h>

int main (int argc, const char * argv[]) {
    // insert code here...
    cout << "Hello, World!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

C

#include <stdio.h>

int main (int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我总是想知道这个,这些默认参数在int main下的C/C++中究竟做了什么?我知道应用程序仍然会在没有它们的情况下编译,但它们的用途是什么?

c c++

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