小编Eri*_*sta的帖子

OpenGL纹理倒置

我正在尝试将我的网络摄像头的输入映射到OpenGL中的平面.我正在使用OpenCV从网络摄像头获取图像.

我遇到的问题是纹理是垂直反转的,如果纹理是"v",则当前结果是"^".

我想将从网络摄像头拍摄的图像放到我的飞机上(2x2).它的左下角是-1,-1,右上角是1,1.

代码是:

const int VIEWPORT_WIDTH = 640;  
const int VIEWPORT_HEIGHT = 480;  
const int KEY_ESCAPE = 27;  

CvCapture* g_Capture;  
IplImage* image;  
GLint g_hWindow;  

GLvoid InitGL();  
GLvoid OnDisplay();  
GLvoid OnReshape(GLint w, GLint h);  
GLvoid OnKeyPress (unsigned char key, GLint x, GLint y);  

int main(int argc, char* argv[])  
{  
    glutInit(&argc, argv);  
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);  
    glutInitWindowPosition(100, 100);  
    glutInitWindowSize(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);   

    g_hWindow = glutCreateWindow("Image");   

    image = cvLoadImage("average.jpg", 1);  
    gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, image->width, image->height, GL_RGB, GL_UNSIGNED_BYTE, image->imageData);   

    InitGL();   

    glutMainLoop();   

    return 0;   
}   

GLvoid …
Run Code Online (Sandbox Code Playgroud)

c++ opengl opencv

12
推荐指数
1
解决办法
8966
查看次数

我怎样才能让机器人键入一个`:`?

我想:用Java Robot 打字.但是,我得到了一个IllegalArgumentException.我的代码是:

robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_COLON);
robot.keyRelease(KeyEvent.VK_COLON);
robot.keyRelease(KeyEvent.VK_SHIFT);
Run Code Online (Sandbox Code Playgroud)

例外是:

java.lang.IllegalArgumentException: Invalid key code.].
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SHIFT);
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

java awtrobot

8
推荐指数
1
解决办法
1万
查看次数

使用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万
查看次数

执行shell脚本后,QT GUI被阻止

我有一个用QT实现的GUI.GUI有许多按钮,其中一个执行shell脚本:

system("/bin/sh executeScene.sh");
Run Code Online (Sandbox Code Playgroud)

脚本执行正常,但GUI被阻止,直到我关闭先前调用的脚本.有没有办法在不阻止GUI的情况下执行我的shell脚本?

GUI有另一个按钮来停止shell脚本但是,由于GUI被阻止,我无法停止脚本.

shell qt

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

覆盖Java

有没有办法覆盖Java方法,唯一改变的是ArrayList?

例如:

public void quickSortMethod(ArrayList<Integer> comparison, int start, int end)   
{}   

public void quickSortMethod(ArrayList<Double> comparison, int start, int end)   
{}   
Run Code Online (Sandbox Code Playgroud)

这目前给我以下错误:

Method quickSortMethod(ArrayList<Integer>, int, int) has the same erasure quickSortMethod(ArrayList<E>, int, int) as another method in type QuickSort   
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我正在使用我在ArrayLists中创建的其他对象作为参数

ArrayList<MyObject>...    
Run Code Online (Sandbox Code Playgroud)

java overriding

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

标签 统计

java ×2

opencv ×2

awtrobot ×1

c++ ×1

opengl ×1

overriding ×1

qt ×1

shell ×1