总计); 对于(;轮廓!=0;轮廓=轮廓->h_下一步) { rect=cvBoundingRect(轮廓);//提取当前轮廓的边界框 //绘图矩形 printf(“%d%d%d%d\n”,矩形x,矩形y,矩形宽度,矩形高度); if(矩形宽度*矩形高度700) { cvRectangle(mCVImageColor、cvPoint(rect.x、rect.y)、cvPoint(rect.x+rect.width、rect.y+rect.height)、cvScalar(0,0,255)、2,8,0); 点形心[1]; 质心[0].x=((矩形x+矩形宽度)/2); 质心[0].y=((矩形y+矩形高度)/2); cvCircle(mCVImageColor,形心[0],5,CV_RGB(255,0,0),-1,0,0); } },opencv,Opencv" /> 总计); 对于(;轮廓!=0;轮廓=轮廓->h_下一步) { rect=cvBoundingRect(轮廓);//提取当前轮廓的边界框 //绘图矩形 printf(“%d%d%d%d\n”,矩形x,矩形y,矩形宽度,矩形高度); if(矩形宽度*矩形高度700) { cvRectangle(mCVImageColor、cvPoint(rect.x、rect.y)、cvPoint(rect.x+rect.width、rect.y+rect.height)、cvScalar(0,0,255)、2,8,0); 点形心[1]; 质心[0].x=((矩形x+矩形宽度)/2); 质心[0].y=((矩形y+矩形高度)/2); cvCircle(mCVImageColor,形心[0],5,CV_RGB(255,0,0),-1,0,0); } },opencv,Opencv" />

cvBoundingRect()的质心 我使用OpenCV 2.4.6和Visual C++ 2010。我试图找到BoundingRect轮廓的质心。下面是我的代码。在这里,我得到了正确位置的矩形。但是,我试图指向每个矩形的质心的圆被移向左上角。怎样才能得到矩形质心上的圆点 int x = cvFindContours(imgThresh,storage,&contours,sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0)); //printf("%d\n",contours->total); for (; contours != 0; contours = contours->h_next) { rect = cvBoundingRect(contours); //extract bounding box for current contour //drawing rectangle printf("%d %d %d %d\n",rect.x, rect.y,rect.width,rect.height); if(rect.width*rect.height<1400 && (rect.width*rect.height)>700) { cvRectangle(mCVImageColor,cvPoint(rect.x, rect.y),cvPoint(rect.x+rect.width, rect.y+rect.height),cvScalar(0, 0, 255),2, 8, 0); CvPoint centroid[1]; centroid[0].x = ((rect.x+rect.width)/2); centroid[0].y = ((rect.y+rect.height)/2); cvCircle( mCVImageColor, centroid[0], 5, CV_RGB(255, 0, 0),-1,0,0); } } int x=cvFindContours(imgThresh、storage和contours、sizeof(CvContours)、CV_RETR_列表、CV_CHAIN_近似值、cvPoint(0,0)); //printf(“%d\n”,等高线->总计); 对于(;轮廓!=0;轮廓=轮廓->h_下一步) { rect=cvBoundingRect(轮廓);//提取当前轮廓的边界框 //绘图矩形 printf(“%d%d%d%d\n”,矩形x,矩形y,矩形宽度,矩形高度); if(矩形宽度*矩形高度700) { cvRectangle(mCVImageColor、cvPoint(rect.x、rect.y)、cvPoint(rect.x+rect.width、rect.y+rect.height)、cvScalar(0,0,255)、2,8,0); 点形心[1]; 质心[0].x=((矩形x+矩形宽度)/2); 质心[0].y=((矩形y+矩形高度)/2); cvCircle(mCVImageColor,形心[0],5,CV_RGB(255,0,0),-1,0,0); } }

cvBoundingRect()的质心 我使用OpenCV 2.4.6和Visual C++ 2010。我试图找到BoundingRect轮廓的质心。下面是我的代码。在这里,我得到了正确位置的矩形。但是,我试图指向每个矩形的质心的圆被移向左上角。怎样才能得到矩形质心上的圆点 int x = cvFindContours(imgThresh,storage,&contours,sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0)); //printf("%d\n",contours->total); for (; contours != 0; contours = contours->h_next) { rect = cvBoundingRect(contours); //extract bounding box for current contour //drawing rectangle printf("%d %d %d %d\n",rect.x, rect.y,rect.width,rect.height); if(rect.width*rect.height<1400 && (rect.width*rect.height)>700) { cvRectangle(mCVImageColor,cvPoint(rect.x, rect.y),cvPoint(rect.x+rect.width, rect.y+rect.height),cvScalar(0, 0, 255),2, 8, 0); CvPoint centroid[1]; centroid[0].x = ((rect.x+rect.width)/2); centroid[0].y = ((rect.y+rect.height)/2); cvCircle( mCVImageColor, centroid[0], 5, CV_RGB(255, 0, 0),-1,0,0); } } int x=cvFindContours(imgThresh、storage和contours、sizeof(CvContours)、CV_RETR_列表、CV_CHAIN_近似值、cvPoint(0,0)); //printf(“%d\n”,等高线->总计); 对于(;轮廓!=0;轮廓=轮廓->h_下一步) { rect=cvBoundingRect(轮廓);//提取当前轮廓的边界框 //绘图矩形 printf(“%d%d%d%d\n”,矩形x,矩形y,矩形宽度,矩形高度); if(矩形宽度*矩形高度700) { cvRectangle(mCVImageColor、cvPoint(rect.x、rect.y)、cvPoint(rect.x+rect.width、rect.y+rect.height)、cvScalar(0,0,255)、2,8,0); 点形心[1]; 质心[0].x=((矩形x+矩形宽度)/2); 质心[0].y=((矩形y+矩形高度)/2); cvCircle(mCVImageColor,形心[0],5,CV_RGB(255,0,0),-1,0,0); } },opencv,Opencv,此部分错误: centroid[0].x = ((rect.x+rect.width)/2); centroid[0].y = ((rect.y+rect.height)/2); 质心为rect.x+rect.width/2,rect.y+rect.height/2(无括号)

此部分错误:

centroid[0].x = ((rect.x+rect.width)/2);
centroid[0].y = ((rect.y+rect.height)/2);
质心为
rect.x+rect.width/2
rect.y+rect.height/2
(无括号)