c - 我该如何用 cffi/lisp 包装 opencv 宏?

标签 c opencv lisp swig cffi

我习惯于包装函数,但我正在尝试包装函数 cvStartWriteSeq ,它似乎使用宏 - CV_WRITE_SEQ_ELEM - 将元素写入 opencv 序列...

这是我发现的代码:

CvSeqWriter writer;
cvStartWriteSeq( CV_32SC2, sizeof(CvSeq), sizeof(CvPoint), storage, &writer );
for( i = 0; i < 100; i++ )
{
CvPoint pt; pt.x = rand()%320; pt.y = rand()%240;
CV_WRITE_SEQ_ELEM( pt, writer );
}
CvSeq* seq = cvEndWriteSeq( &writer );

我熟悉使用 defcfun 来包装函数,但在/modules/core/include/opencv2/core/types_c.h 中我看到了该宏,我很好奇如何完成该任务。这是宏定义...

#define CV_WRITE_SEQ_ELEM( elem, writer )             \
{                                                     \
     assert( (writer).seq->elem_size == sizeof(elem)); \
     if( (writer).ptr >= (writer).block_max )          \
     {                                                 \
         cvCreateSeqBlock( &writer);                   \
     }                                                 \
     assert( (writer).ptr <= (writer).block_max - sizeof(elem));\
     memcpy((writer).ptr, &(elem), sizeof(elem));      \
     (writer).ptr += sizeof(elem);                     \
}

任何关于我如何做到这一点的指导都会加快获得完整的 Lisp opencv 包装器的过程,我们将不胜感激 =)

最佳答案

关于c - 我该如何用 cffi/lisp 包装 opencv 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807500/

相关文章:

python - 识别文件检测和 ocr 中的模糊文本

web - 如何在 Racket 中阅读网页?

在C中将UTC时间转换为unix时间戳

c - C 中使用分隔符分割字符串

opencv - OpenCV中如何使用kmeans整理阴影

python - OpenCV python,如何以python方式将操作应用于单个 channel ?

haskell - 哪些语言实现了函数式编程的特性?

scheme - SICP Ex。 1.17 - "fast-multiply"比 "multiply"慢?

c - 如何将一个文本文件一点点分割成两个文件

php - 如何使用 PHP 和 C 将大图保存在内存中?