小编blu*_*uth的帖子

了解顶点数组对象(glGenVertexArrays)

我对使用以下方法生成/创建顶点数组对象(VAO)的观点感到困惑:

glGenVertexArrays(GLsizei n, GLuint *arrays);
Run Code Online (Sandbox Code Playgroud)

glBindVertexArray(GLuint);
Run Code Online (Sandbox Code Playgroud)

因为我仍然可以创建一个缓冲区对象,说了顶点,并描述了该缓冲区对象glVertexAttribPointer,并glEnableVertexAttribArray没有创造过一个VAO.

我的问题是,如果您不必实际创建VAO来描述缓冲区对象中的数据,那么为什么OpenGL SuperBible 5ed这样的源包含在创建VBO时创建VAO的调用?它们仅用于我尚未发现的更高级的主题,我完全糊涂了吗?

此外,我在VBO上阅读wikipedias条目时首次遇到这个问题,他们的示例代码不包含任何调用,glGenVertexArrays()但他们仍然用数据描述数据glVertexAttribPointer().Wiki VBO条目 - 出于什么原因创建VAO的示例?

c c++ opengl opengl-3

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

OpenCV Python通过图像数据绑定极其缓慢的迭代

我最近在OpenCV c ++中使用了一些跟踪基于颜色的对象的代码,并在python绑定中重写了它.

整体结果和方法显然是相同的减去语法.但是,当我在视频的每一帧上执行以下代码时,需要将近2-3秒才能完成,因为c ++变体(也在下面)是即时比较的,我可以在帧之间迭代,就像我的手指可以按下一样快键.

有什么想法或意见吗?

    cv.PyrDown(img, dsimg)
    for i in range( 0, dsimg.height ):
        for j in range( 0, dsimg.width):

            if dsimg[i,j][1] > ( _RED_DIFF + dsimg[i,j][2] ) and dsimg[i,j][1] > ( _BLU_DIFF + dsimg[i,j][0] ):
                res[i,j] = 255
            else:
                res[i,j] = 0
Run Code Online (Sandbox Code Playgroud)
    for( int i =0; i < (height); i++ ) 
    {
        for( int j = 0; j < (width); j++ )
        {
            if( ( (data[i * step + j * channels + 1]) > (RED_DIFF …
Run Code Online (Sandbox Code Playgroud)

c++ python performance opencv

5
推荐指数
1
解决办法
1706
查看次数

访问负像素值OpenCV

我试图在OpenCV中对图像执行过零边缘检测.我模糊并使用cvLaplace()然后从(0,max)缩放它.我的问题是:如何以正确识别负值的方式访问该图像中的像素值?使用OpenCV(cvPtr2D)提供的函数返回无符号字符.有什么想法或意见吗?

谢谢

c c++ opencv gaussian edge-detection

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

标签 统计

c++ ×3

c ×2

opencv ×2

edge-detection ×1

gaussian ×1

opengl ×1

opengl-3 ×1

performance ×1

python ×1