小编the*_*ine的帖子

使用cvGet2D OpenCV函数

我正在尝试使用OpenCV中的函数cvGet2D从图像中获取信息.

我创建了一个包含10个IplImage指针的数组:

IplImage *imageArray[10];  
Run Code Online (Sandbox Code Playgroud)

我正在从我的网络摄像头保存10张图像:

imageArray[numPicture] = cvQueryFrame(capture);  
Run Code Online (Sandbox Code Playgroud)

当我调用函数时:

info = cvGet2D(imageArray[0], 250, 100);  
Run Code Online (Sandbox Code Playgroud)

其中info:

CvScalar info;  
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

OpenCV错误:cvPtr2D中的错误参数(无法识别或不支持的数组类型),文件/build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp,第1824行
终止在抛出'cv :: Exception'的实例后被调用
what():/ build/buildd/opencv-2.10/src/cxcore/cxarray.cpp:1824:错误:( - 5)函数cvPtr2D中无法识别或不支持的数组类型

如果我使用该函数cvLoadImage初始化IplImage指针然后我将它传递给cvGet2D函数,代码正常工作:

IplImage* imagen = cvLoadImage("test0.jpg");
info = cvGet2D(imagen, 250, 100);  
Run Code Online (Sandbox Code Playgroud)

但是,我想使用已经存储在我的数组中的信息.

你知道我怎么解决它?

opencv

4
推荐指数
2
解决办法
2万
查看次数

OpenCL内置函数'select'

我不清楚内置OpenCL功能的目的是什么select.请有人澄清一下吗?

从OpenCL规范:

函数选择(gentype a,gentype b,igentype c)

返回:对于矢量类型的每个分量,result [i] =如果设置了c [i]的MSB?b [i]:a [i].

在这种情况下,什么是MSB?我知道MSB代表最重要的一点,但我不知道它与这种情况有什么关系.

opencl

4
推荐指数
1
解决办法
3351
查看次数

OpenCL的成本get_local_id()

我有一个简单的扫描内核,它计算循环中几个块的扫描.我注意到当get_local_id()存储在局部变量中而不是在循环内调用它时,性能会有所上升.所以用代码总结一下,这个:

__kernel void LocalScan_v0(__global const int *p_array, int n_array_size, __global int *p_scan)
{
    const int n_group_offset = get_group_id(0) * SCAN_BLOCK_SIZE;
    p_array += n_group_offset;
    p_scan += n_group_offset;
    // calculate group offset

    const int li = get_local_id(0); // *** local id cached ***
    const int gn = get_num_groups(0);
    __local int p_workspace[SCAN_BLOCK_SIZE];
    for(int i = n_group_offset; i < n_array_size; i += SCAN_BLOCK_SIZE * gn) {
        LocalScan_SingleBlock(p_array, p_scan, p_workspace, li);

        p_array += SCAN_BLOCK_SIZE * gn;
        p_scan += SCAN_BLOCK_SIZE * gn;
    }
    // process all …
Run Code Online (Sandbox Code Playgroud)

cuda nvidia opencl

3
推荐指数
1
解决办法
1320
查看次数

OpenGL线条粗细

我成功地用螺旋线绘制了螺旋线GL_LINE_STRIP.现在我想知道是否有可能以某种方式使线更粗.谷歌搜索使我意识到2个选择.我可以制作三角形来制作四边形...或者只是以某种方式使用glLineWitdh?我只想要最简单的方法来做到这一点,所以它支持下一个我要做的事情.这是为特定线段着色.

使用OpenGL ES 2.0

opengl-es opengl-es-2.0

3
推荐指数
1
解决办法
9258
查看次数

CUDA Direct3D互操作性已弃用?

我一直在浏览CUDA文档和Direct 3D 11的互操作性,据说它已被弃用。但是,该文档没有说明执行此操作的新方法是什么,或者为什么不建议这样做。我无法在Google上找到答案。有人知道吗?

cuda direct3d

3
推荐指数
1
解决办法
1161
查看次数

单周期乘法和硬件划分是什么意思?

我正在阅读数据表并阅读"单周期乘法和硬件划分"作为STM32规范的一部分,我不确定我理解这意味着什么.根据我在网上看到的,乘法通常比除法更容易计算.这是否意味着STM可以在一个周期内计算乘法和除法?

请协助.

c embedded stm32

3
推荐指数
1
解决办法
3583
查看次数

通过 jni 从 c++ 调用 java 代码时出现奇怪的 sigsegv

以下代码是漂亮的样板代码,可以正常运行,但在 gdb 中运行时会崩溃。因此,我不会关心这一点,但这是我的较大程序的简化版本,无论有没有 gdb,它也会崩溃。对于我在这里做错的事情的任何帮助将非常感激。

它在最后一次调用 JVM“jobobject hbase_configuration = env->CallStaticObjectMethod(cls, create_mid);”时崩溃

我尝试通过 JNI 通过不同的东西多次调用 HBaseConfiguration.Create,但在所有情况下都会崩溃。gdb 上的堆栈跟踪似乎不是很有帮助,尽管使用 -g 进行了编译,但我无法从中获取任何符号。

#include <string>
#include <glog/logging.h>
#include <jni.h>
// (edit - this was hidden in the original post).

int main(int argc, char* argv[]) {
  JavaVM *jvm;
  JNIEnv *env;
  JavaVMInitArgs vm_args;
  JavaVMOption options[5];

  vm_args.nOptions = 5;
  vm_args.version = JNI_VERSION_1_6;
  vm_args.options = options;
  vm_args.ignoreUnrecognized = 1;


  JNI_GetDefaultJavaVMInitArgs(&vm_args);

  options[0].optionString = "-Djava.class.path=hbase-1.0-SNAPSHOT.jar:activation-1.1.jar:asm-3.1.jar:avro-1.7.1.cloudera.2.jar:commons-beanutils-1.7.0.jar:commons-beanutils-core-1.8.0.jar:commons-cli-1.2.jar:commons-codec-1.4.jar:commons-collections-3.2.1.jar:commons-configuration-1.6.jar:commons-daemon-1.0.3.jar:commons-digester-1.8.jar:commons-el-1.0.jar:commons-httpclient-3.1.jar:commons-io-2.1.jar:commons-lang-2.5.jar:commons-logging-1.1.1.jar:commons-math-2.1.jar:commons-net-3.1.jar:ftplet-api-1.0.0.jar:ftpserver-core-1.0.0.jar:ftpserver-deprecated-1.0.0-M2.jar:guava-11.0.2.jar:hadoop-annotations-2.0.0-cdh4.1.1.jar:hadoop-auth-2.0.0-cdh4.1.1.jar:hadoop-common-2.0.2-alpha.jar:hadoop-common-2.0.2-alpha-tests.jar:hadoop-hdfs-2.0.0-cdh4.1.1.jar:hadoop-test-2.0.0-mr1-cdh4.1.1.jar:hbase-0.92.1-cdh4.1.0.jar:hbase-0.92.1-cdh4.1.0-sources.jar:hbase-0.92.1-cdh4.1.0-tests.jar:high-scale-lib-1.1.1.jar:hsqldb-1.8.0.10.jar:jaxb-api-2.1.jar:jaxb-impl-2.2.3-1.jar:jersey-core-1.8.jar:jersey-json-1.8.jar:jersey-server-1.8.jar:jets3t-0.6.1.jar:jline-0.9.94.jar:jsch-0.1.42.jar:jsp-api-2.1.jar:jsr305-1.3.9.jar:junit-4.10.jar:kfs-0.3.jar:log4j-1.2.17.jar:metrics-core-2.1.2.jar:paranamer-2.3.jar:protobuf-java-2.4.1.jar:servlet-api-2.5.jar:tools.jar";
  options[1].optionString = "-verbose:jni";
  options[2].optionString = "-Xcheck:jni:pedantic,verbose";
  options[3].optionString = "-Xdebug";
  options[4].optionString = "-Xrunjdwp:transport=dt_socket,address=4242,server=y,suspend=n";
  vm_args.nOptions = 5;
  vm_args.version = …
Run Code Online (Sandbox Code Playgroud)

java-native-interface

2
推荐指数
1
解决办法
2352
查看次数

提升精神在服务器应用程序上实现小型单行DSL

如果之前已经回答过这个问题,请道歉.

我想在我工作的服务器应用程序中插入一个小型DSL.语法很简单,即使在这个早期阶段,我也很难过.我无法理解如何在精神上构建语法.

以下是我要测试的语法示例:

WHERE [not] <condition> [ and | or <condition> ] <command> [parameters]
Run Code Online (Sandbox Code Playgroud)

WHERE子句将通过测试内部存储上的命名属性来从内部存储中选择多个对象.然后将所选对象的矢量作为输入传递给命令对象.

我想对每个对象执行两种可能的测试:

<property> = "value"
Run Code Online (Sandbox Code Playgroud)

<property> like <regexp>
Run Code Online (Sandbox Code Playgroud)

还有2个命令:

print <propertyName> [, <propertyName> [...]]
Run Code Online (Sandbox Code Playgroud)

set <propertyName> = "value" [, <propertyName> = "value" [...] ]
Run Code Online (Sandbox Code Playgroud)

所以语法的例子是:

where currency like "GBP|USD" set logging = 1, logfile = "myfile"
Run Code Online (Sandbox Code Playgroud)

where not status = "ok" print ident, errorMessage
Run Code Online (Sandbox Code Playgroud)

我知道这是一个很大的问题,但我想知道是否有任何精神专家可以在几秒钟内完成这个语法?我解析LIKE和=,但在尝试将它与AND,OR和NOT混合时卡住了.对我来说,问题是在思考精神如何解决这个问题时不知道从哪里开始.

c++ dsl boost boost-spirit boost-spirit-qi

2
推荐指数
1
解决办法
968
查看次数

新std :: map条目中指针的默认值

所以我有以下内容std::map:

std::map<int, float*> map;
Run Code Online (Sandbox Code Playgroud)

使用以下方法访问此地图operator []:

float *pointer = map[123];
Run Code Online (Sandbox Code Playgroud)

现在,如果地图中不存在键123,则指针的值将是未定义的.那是对的吗?确保它是:

template <class T>
struct PtrWithDefault {
    T *p;
    PtrWithDefault() :p(0) {} // default
    PtrWithDefault(T *ptr) :p(ptr) {}
    PtrWithDefault(PtrWithDefault other) :p(other.p) {} // copy
    operator T *() { return p; }
};
std::map<int, PtrWithDefault<float> > map;
Run Code Online (Sandbox Code Playgroud)

现在这样做可以确保指针的正确初始化.还有其他方法吗?这是一种丑陋的解决方案.我的最终目标是速度:

std::map<int, float*> map;
float *p;
std::map<int, float*>::iterator it = map.find(123);
if(it != map.end())
    p = (*it).second; // just get it
else
    map[123] = p = 0;
Run Code Online (Sandbox Code Playgroud)

这会比使用默认指针的解决方案更快吗?有没有更好的方法来做到这一点?

编辑

好吧,这对我来说完全是愚蠢的.正如Brian …

c++ pointers stl

2
推荐指数
1
解决办法
620
查看次数

如何使用expect语法编写should_not be_valid

我在学习 Codeschool 课程时正在做一些测试rspec,但我不知道如何使用expect语法编写模型验证是否存在。如果我写:

expect(user).should_not be_valid 
Run Code Online (Sandbox Code Playgroud)

rspec告诉我使用expect而不是should_not. 但我找不到如何编写正确的表达式来检查验证。

rspec ruby-on-rails rspec-rails

2
推荐指数
1
解决办法
1120
查看次数