我正在使用openCV,我有一个类型为CV_32F的95,1 mat对象,我想写一个二进制文件.我正在使用下面的代码但是我不能将32F转换为char类型.有什么建议吗?我还想执行读取二进制文件并将值存储到相同类型的mat对象的相反过程.
try{
ofstream posBinary;
posBinary.open("C:/Users/Dr.Mollica/Documents/TSR Datasets/signDatabasePublicFramesOnly/posSamps.bin", ios::out | ios::binary);
posBinary.write((char *)featureVector, sizeof(featureVector);
}
catch (exception X){ cout << "Error! Could not write Binary file" << endl; }
Run Code Online (Sandbox Code Playgroud)
另外需要注意的是,我想在二进制文件中执行此操作的原因是我将向文件中写入大量这些向量,这些向量将被读入机器学习算法.从我的理解,读取和写入二进制文件是最快的方法.
我对 Qt 还很陌生,在这一点上我完全被困住了。我唯一的选择是求助于专家。我设计了一个 GUI,可以将图像加载到 QMainWindow 上的 Qlabel 中。然后我想在图像本身上绘制多个点。但是,似乎正在发生的事情是该点被绘制在图像后面,我不知道如何在图像顶部绘制该点。
我的代码:
主程序
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
主窗口.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMouseEvent>
//Declaring the external Variables
extern QString name;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_actionOpen_triggered();
void on_actionDraw_2_triggered();
void on_actionCreate_2_triggered();
void mousePressEvent(QMouseEvent* event);
void paintEvent(QPaintEvent* e);
private:
Ui::MainWindow *ui;
};
#endif …Run Code Online (Sandbox Code Playgroud) 因此,我试图为特定模式设置grep,然后将该模式上下的所有内容打印到特定指示器.我不知道grep是否可行,或者我是否应该使用其他工具,如awk,sed或生成一些shell脚本.所以,如果我有以下内容:
---------------
.....
process: failed
......
----------------
Run Code Online (Sandbox Code Playgroud)
和
----------------
.....
process: frozen
.....
----------------
Run Code Online (Sandbox Code Playgroud)
我希望grep'process:frozen'并且当找到'process:frozen'时想要虚线之间的所有内容.但是,虚线之间的行数可能因不同的"进程:冻结"消息而有所不同,因此我无法计算上方或下方的行数,并使用grep的-A和-B选项.先感谢您.