最近看美剧 《TELL LIE TO ME》,对里边的一些东西非常感兴趣,具体就是摄像头目录然后会自动截取眼睛的图像到另外一个屏幕,想用OPENCV实现下。
自己开始使用OPENCV对很多东西都不怎么熟悉,可以使用OPENCV既有的算法检测到眼睛,然后就差截取眼睛部分的图像了,在网络上找了很多,大概只有一种可用的方法,具体如下:
使用的函数只有两个:
//
CvMat* cvGetSubRect(const CvArr* arr, CvMat* submat, CvRect rect);
/* arr Input array
submat Pointer to the resultant sub-array header
rect Zero-based coordinates of the rectangle of interest
The function returns header, corresponding to a specified rectangle of the input array. In other
words, it allows the user to treat a rectangular part of input array as a stand-alone array. ROI is
taken into account by the function so the sub-array of ROI is actually extracted. */
从结构arr中获取rect指向的内容,然后将这些内容复制到submat结构中,表达式采用链式表达,把内容复制到submat后,并返回submat的地址,使用过opencv的人都知道, CvArr不是一种具体的结构&