在程序运行时,查看变量的值在所难免,但是想要在程序运行的过程中查看变量的值就会有点难度了,因为你可以按下(长按)“Ctrl+ C”来强制中断程序,但是这样做相当于直接退出程序,并不能像调试那样继续查看某一变量的值。
所以,我会选择将想要查看的值输出到文本中,其它的就不用管了,任程序自由运行即可。当然,变量值的“某一时刻对应哪个值”这种比较精确地问题,望大神帮忙解决,谢谢!
程序的核心部分:
#include <fstream> //头文件
ofstream fout("Bmat.txt");//默认路径是工程文件下
。。。。。。
fout<< 变量 << endl;
看一个实际案例:
//该程序可以将一幅彩色图的各个像素读取出来保存到Bmat.txt文件中
#include "stdafx.h"
#include <opencv.hpp>
#include <fstream>
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
IplImage *img = cvLoadImage("1.jpg", 1);
ofstream fout("Bmat.txt");
CvScalar s;
cout << "\n 开始保存咯\n";
int q = 0;
for (int i = 0; i<img->height; i++)
{
for (int j = 0; j<img->width; j++)
{
s = cvGet2D(img, i, j); //获取src图像中坐标为(i,j)的像素点的值
//s.val[0] 代表src图像BGR中的B通道的值~
fout << s.val[0];
fout << "\t";
fout << s.val[1];
fout << "\t";
fout << s.val[2];
fout << "\t";
fout << endl;//每个像素点之后换行
//或者直接这样写:fout<< s.val[0] << endl;
//cvSet2D(img, i, j, s); //set the (i,j) pixel value
q++;
}
}
cout << "\n 保存完毕! \n";
cout << "矩阵一共有" << q << "行" << '\n';
}