我是在Visual Studio上使用OpenCV的新手,我最近重新安装了我的VS2012以使用OpenCV 2.4.2来使其工作。
我正在尝试通过鼠标单击顶点并将它们推送到CvSeq *来计算指定区域的区域,以与contourArea()函数一起使用。
我目前正在尝试解析一个空的CvSeq *作为我的自定义鼠标回调函数的最后一个参数,以便我可以添加由x和y坐标组成的CvPoint。但是,每当我尝试访问CvSeq *轮廓后,我都会收到错误。所以在下面的代码片段中:
void CallBackFunc(int event, int x, int y, int flags, void* userdata)
{
CvSeq* contour = (CvSeq*)userdata;
CvPoint cur;
if ( event == EVENT_LBUTTONDOWN )
{
cout << "Left button of the mouse is clicked - position (" << x << ", " << y << ") saved as point" << endl;
// save x,y as a contour point
cur = cvPoint(x,y);
cvSeqPush(contour, &cur);
...
我得到正确的cout消息,但在尝试使用CvSeq *绘制轮廓时会出现这样的错误: opencvtest.exe中0x75E3812F处的未处理异常:Microsoft C ++异常:cv ::内存位置0x001FF990处的异常。
这是什么问题?我会不会尝试使用Vector&gt;而不是CvSeq?