1
作爲項目的一部分,我現在正在工作,我需要繪製類似於MATLAB的樣式的矢量。在研究了一些與CIMG相關的可能性之後,這些可能性很容易融入到我的程序中,恰到好處地滿足我的需求。我在C++方面很新,從未使用過Cimg。使用Cimg在C++中繪製矢量
繼我來到這個程序來繪製矢量(本名爲ecg_r情況下)指南中提供的一個例子,我的代碼看起來是這樣的:
// Read command line argument cimg_usage("Simple plotter of ECG signal");
const char *const formula = cimg_option("-f", "x", "Formula to plot");
const float x0 = cimg_option("-x0", 0.0f, "Minimal X-value");
const float x1 = cimg_option("-x1", 20.0f, "Maximal X-value");
int sizeecg = ecg_r.size();
const int resolution = cimg_option("-r", sizeecg, "Plot resolution");
const unsigned int nresolution = resolution>1 ? resolution : sizeecg;
const unsigned int plot_type = cimg_option("-p", 1, "Plot type");
const unsigned int vertex_type = cimg_option("-v", 1, "Vertex type");
// Create plot data.
CImg<double> values(1, nresolution, 1, 1, 0);
const unsigned int r = nresolution - 1;
for (int i1 = 0; i1 < sizeecg; ++i1)
{
double xtime = x0 + i1*(x1 - x0)/r;
values(0, i1) = ecg_r.at(i1);
}
// Display interactive plot window.
values.display_graph(formula, plot_type, vertex_type, "X-axis", x0, x1, "Y-axis");
我在顯示屏上觀察到的圖像創建的窗口正是我所期待的,但是當我試圖將圖像保存爲BMP使用:
values.save_bmp("test.bmp");
的圖像是全黑的,我怎麼能救我的顯示功能看到的形象呢?我昨天下午花了一些文檔,找不到線索。
預先感謝您..
這是什麼,我試圖做MCVE,我希望能夠在BMP我在顯示窗口是送走保存。謝謝
#include "CImg.h"
#include <vector>
using namespace cimg_library;
int main(int argc, char** const argv)
{
cimg_usage("Simple plotter of mathematical formulas");
const char *const formula = cimg_option("-f", "sin(x)", "Formula to plot");
const float x0 = cimg_option("-x0", -5.0f, "Minimal X-value");
const float x1 = cimg_option("-x1", 5.0f, "Maximal X-value");
const int resolution = cimg_option("-r", 5000, "Plot resolution");
const unsigned int nresolution = resolution>1 ? resolution : 5000;
const unsigned int plot_type = cimg_option("-p", 1, "Plot type");
const unsigned int vertex_type = cimg_option("-v", 1, "Vertex type");
// Create plot data.
CImg<double> values(1, nresolution, 1, 1, 0);
const unsigned int r = nresolution - 1;
for (int i1 = 0; i1 < resolution; ++i1)
{
double xtime = x0 + i1*(x1 - x0)/r;
values(0, i1) = sin(xtime);
}
CImg<double> values2;
values2 = values.display_graph(formula, plot_type, vertex_type, "X Axis", x0, x1, "Y Axis");
values.normalize(0, 255);
values.save_bmp("test.bmp");
}
感謝您的迴應,不幸的是,這不是答案。當我這樣做時,它保存的圖像是1像素的sizeecg,我懷疑它只是圖像形式中的矢量。我想用display_graph函數看到圖像時保存圖像 –
@DiegoFernandoPava你可以上傳你的輸出圖像並分享嗎? –
我剛剛在@MarkSetchell先謝謝您。 –