mirror of
https://github.com/hybridgroup/gocv
synced 2025-08-25 08:41:04 +08:00
114 lines
2.1 KiB
C++
114 lines
2.1 KiB
C++
#include <string.h>
|
|
#include "persistence.h"
|
|
|
|
bool FileNode_Empty(FileNode fn) {
|
|
return fn->empty();
|
|
}
|
|
|
|
bool FileNode_IsInt(FileNode fn){
|
|
return fn->isInt();
|
|
}
|
|
|
|
bool FileNode_IsMap(FileNode fn){
|
|
return fn->isMap();
|
|
}
|
|
|
|
bool FileNode_IsNamed(FileNode fn) {
|
|
return fn->isNamed();
|
|
}
|
|
|
|
bool FileNode_IsNone(FileNode fn){
|
|
return fn->isNone();
|
|
}
|
|
|
|
bool FileNode_IsReal(FileNode fn){
|
|
return fn->isReal();
|
|
}
|
|
|
|
bool FileNode_IsSeq(FileNode fn) {
|
|
return fn->isSeq();
|
|
}
|
|
|
|
bool FileNode_IsString(FileNode fn) {
|
|
return fn->isString();
|
|
}
|
|
|
|
char** FileNode_Keys(FileNode fn) {
|
|
|
|
std::vector<cv::String> keys = fn->keys();
|
|
|
|
char** c_keys = new char*[keys.size()];
|
|
|
|
for (int i = 0; i < keys.size(); i++) {
|
|
char *c_key = new char[keys[i].length()+1];
|
|
strcpy(c_key, keys[i].c_str());
|
|
c_keys[i] = c_key;
|
|
}
|
|
|
|
return c_keys;
|
|
}
|
|
|
|
size_t FileNode_KeysCount(FileNode fn) {
|
|
return fn->keys().size();
|
|
}
|
|
|
|
|
|
void FileNode_KeysFree(char** keys, size_t len) {
|
|
for(int i = 0; i < len; i++) {
|
|
delete keys[i];
|
|
}
|
|
delete keys;
|
|
}
|
|
|
|
Mat FileNode_Mat(FileNode fn) {
|
|
return new cv::Mat(fn->mat());
|
|
}
|
|
|
|
const char* FileNode_Name(FileNode fn) {
|
|
char* str = new char[fn->name().length()+1];
|
|
strcpy(str, fn->name().c_str());
|
|
return str;
|
|
}
|
|
|
|
float FileNode_Float(FileNode fn) {
|
|
return (float)fn->real();
|
|
}
|
|
|
|
const char* FileNode_String(FileNode fn) {
|
|
char* str = new char[fn->string().length()+1];
|
|
strcpy(str, fn->string().c_str());
|
|
return str;
|
|
}
|
|
|
|
FileNode FileNode_Get(FileNode fn, int i) {
|
|
return new cv::FileNode((*fn)[i]);
|
|
}
|
|
|
|
FileNode FileNode_GetByName(FileNode fn, const char* nodename) {
|
|
return new cv::FileNode((*fn)[nodename]);
|
|
}
|
|
|
|
size_t FileNode_RawSize(FileNode fn) {
|
|
return fn->rawSize();
|
|
}
|
|
|
|
void FileNode_ReadRaw(FileNode fn, const char* fmt, void *vec, size_t len) {
|
|
fn->readRaw(fmt, vec, len);
|
|
}
|
|
|
|
void FileNode_SetValue(FileNode fn, int type, const void *value, int len) {
|
|
fn->setValue(type, value, len);
|
|
}
|
|
|
|
size_t FileNode_Size(FileNode fn) {
|
|
return fn->size();
|
|
}
|
|
|
|
int FileNode_Type(FileNode fn) {
|
|
return fn->type();
|
|
}
|
|
|
|
void FileNode_Close(FileNode fn){
|
|
delete fn;
|
|
}
|