【gnuplot halcon c++ opencv绘制函数】


1.halcon绘制gnuplot

	gnuplot_open_file ('C:/colors_mono.gp', GnuplotFileID)
	read_funct_1d ('C:/f', SmoothedFunction_N)
	gnuplot_plot_funct_1d (GnuplotFileID, SmoothedFunction_N)
	gnuplot_plot_image(TiledImage, GnuplotFileID, 64, 64, 60, 30, 'nohidden3d')
	gnuplot_plot_ctrl (GnuplotFileID, Area)
	gnuplot_open_pipe (GnuplotFileID1)
	gnuplot_close (GnuplotFileID)

2.opencv绘制函数

 //opencv绘制曲线
 if(0){
     using namespace cv;
     //准备一行51列的数据位置
     Mat data_x(1, 151, CV_64F);
     Mat data_y(1, 151, CV_64F);

     //填充模拟数据
     for (int i = 0; i < data_x.cols; i++) {
         double x = (i - data_x.cols / 2);
         data_x.at<double>(0, i) = x;
         data_y.at<double>(0, i) = 2*x * x * x + 5*x*x +3;
     }

     std::cout << "data_x : " << data_x << std::endl;
     std::cout << "data_y : " << data_y << std::endl;

     Mat plot_result;

     Ptr<plot::Plot2d> plot = plot::Plot2d::create(data_x, data_y);
     plot->render(plot_result);
     imshow("plot 2d data in default way!", plot_result);
     //自定义参数
     plot->setShowText(false);
     plot->setShowGrid(false);
     plot->setPlotBackgroundColor(Scalar(255, 200, 200));
     plot->setPlotLineColor(Scalar(255, 0, 0));
     plot->setPlotLineWidth(2);
     plot->setInvertOrientation(true);//左右颠倒绘制
     plot->render(plot_result);//根据参数进行渲染

     imshow("The plot rendered with some of custom visualization options", plot_result);
     waitKey();
 }

3.matplotlib绘制函数

//matplot绘制曲线
if (0)  
{
    std::vector<double> x;
    std::vector<double> y;
    for (double i = 0; i < 10; i += 0.1) {
        x.push_back(i);
        y.push_back(std::sin(i));
    }
    matplot::plot(x, y);
    matplot::xticks({ 0, 2.5, 5, 7.5, 10 });
    matplot::xlim({ 0, 10 });
    matplot::ylim({ -1, 1 });
    matplot::show();
    matplot::save("demo.png");
}

4.c++绘制gnoplot

// 创建ofstream对象
ofstream outFile("file.txt");
for (auto& xx : res)
{
    // 按行写入数据
    outFile << xx << endl;
}
// 关闭文件
outFile.close();

if(0){
    // 打开一个到Gnuplot的管道
    FILE* pipe = _popen("gnuplot -persist", "w");
    if (!pipe) {
        return ;  // 如果无法打开管道,返回-1
    }

    // 向Gnuplot发送指令
    //const char* cmd = "plot sin(x)\n";
    const char* cmd = "plot \"C:\\data.txt\" with linespoints, \"C:\\data1.txt\"  with linespoints\n";
    fprintf(pipe, cmd);  // 发送指令到Gnuplot
    fflush(pipe);        // 刷新输出缓冲区

    // 关闭管道
    _pclose(pipe);
}

5.c++读写本vector

if (1) 
{
    std::ifstream f1("C:\\data.txt");
    std::string line; std::vector<double> vec;
    while (std::getline(f1, line))
    {
        std::cout << line << endl;
        vec.push_back((double)std::atof(line.c_str()));
    }
    std::vector<std::vector<double>> tt, res;
    tt.push_back(vec);
    cv::Sobel(tt, res, CV_32F, 1, 0, 3);
 }

 std::ifstream file("C:\\data.txt");
 std::string line; std::vector<double> vec,res;
 while (std::getline(file, line)) //按行读取文件
 {
     std::cout << line << std::endl; //输出每一行的内容
     vec.push_back((double)std::atof(line.c_str()));
 }
 file.close(); //关闭文件


 // 创建ofstream对象
 ofstream outFile("file.txt");
 for (auto& xx : res)
 {
     // 按行写入数据
     outFile << xx << endl;
 }
 // 关闭文件
 outFile.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【网络星空】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值