第一次处理图形图像方面的东西
希望高手给点指点

解决方案 »

  1.   

    使用Opencv可以容易实现。
    1、截取一帧
    2、获取该帧的数据部分,就是一个二维数组啊
    3、按照你所要的像素点的坐标,转换成为二维数组的下标就好了,但是要注意好图像数据是倒置的
      

  2.   

    那再问一个问题
    我写了个程序希望可以隔4秒获得某一帧的RGB值
    但窗口显示不出改变后的图像
    而且同一点的RGB值也不会随着摄像头的晃动改变
    为什么呢?
    void delay()
    {
    clock_t start_time;
    start_time = clock();
    while((clock() - start_time) < 4.0 * CLOCKS_PER_SEC)
    {
    }}int main()
    {
    CvCapture* capture = cvCaptureFromCAM(0);
    IplImage *pImg=0;
    if(!cvGrabFrame(capture)){              // capture a frame 
      printf("Could not grab a frame\n\7");
      exit(0);
    }
    int ok; scanf("%d",&ok); for(;0<1;){ pImg=cvRetrieveFrame(capture); 
    printf("%d %d\n",pImg->width,pImg->height);
    cvNamedWindow("Image",1);
    cvShowImage("Image",pImg);
    int i,j;
    scanf("%d %d",&i,&j);
    printf("%d %d %d\n",
    ((uchar *)(pImg->imageData + i*pImg->widthStep))[j*pImg->nChannels + 0],
    ((uchar *)(pImg->imageData + i*pImg->widthStep))[j*pImg->nChannels + 1],
    ((uchar *)(pImg->imageData + i*pImg->widthStep))[j*pImg->nChannels + 2]);
    delay(); }
    cvWaitKey(0);
    cvReleaseImage(&pImg);
    cvDestroyWindow("Image");
    cvReleaseCapture(&capture);
    return 0;
    }