从海康威视IPCamera摄像头里面采集到IplImage图像后,还需要与我的图像处理工程合并(一开始我是读文件的),想到的方法是使用链队列作为共享内容,然后一个线程负责采集图像,另一个线程负责处理图像。当然这两个线程的速度肯定是不匹配的,这个时候就需要自己处理一下,丢帧或者等待都可以。
另外在将图像存入链队列和从链队列里面取图像的时候都是临界区,我用的是互斥量处理的。
filename: Queue.h
/*********************************************************************************************************
*由于图片生成后都是放在内存里面的,而且中间不会进行什么插入、删除操作,所以链队列是最好的选择。
*构建一个存放图片的链队列
*********************************************************************************************************/
#ifndef __Queue_H__
#define __Queue_H__
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
//队列节点结构
typedef struct QNode
{
IplImage * img;
struct QNode * next;
}QNode, *QueuePtr;
//队列的链表结构
typedef struct
{
QueuePtr front, rear; //队头队尾指针
}LinkQueue;
//求队列长度
int QueueLength(LinkQueue * Q);
//构建一