精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
机器视觉课程设计
=Cycle_X;
M_Point[2].y=q_iHeight/2;
}
}
for(int Cycle_X=q_iWidth;Cycle_X>1;Cycle_X--)
{
if(e_dThreshold>q_pchDataImage[Cycle_X+q_iWidthStep*(q_iHeight/2-1)])
{
M_Point[3].x=Cycle_X;
M_Point[3].y=q_iHeight/2;
}
}
for (int i=0;i<4;i++)//画边界圆
{cvCircle(m_pIplImageSource,M_Point[i],8,cvScalarAll(127),2);}
int Ridius=0,clear=0;
int circle_y=abs(M_Point[1].y+M_Point[0].y)/2;
int circle_x=abs(M_Point[3].x+M_Point[2].x)/2;
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
float c=0,j=0;
for (int i=0;i<4;i++)
{
j=(M_Point[i].x-circle_x)*(M_Point[i].x-circle_x)+(M_Point[i].y-circle_y)*(M_Point[i].y-circle_y);
c=c+sqrt(j);
}
Ridius=c/4;
//在窗口中显示长和高
char ch1[10],ch2[10];
itoa(Ridius,ch1,10);
itoa(clear,ch2,10);
SetDlgItemText(IDC_LONG,ch1);
SetDlgItemText(IDC_SHORT,ch2);
CWnd *e_pCWndPicture=this->GetDlgItem(ID_PICTURE_DISPLAY);
f_ControlShowImage(m_pIplImageDisplay,e_pCWndPicture,m_pIplImageSource);
cvSaveImage(_T(".//"),m_pIplImageSource);
return 0;
}
检测与计算矩形长和宽的程序
思路:这个程序主要包括:打开摄像头---保存图片(拍照)---加载刚刚保存的图片---找出点并计算长和高 四个按钮,每一个按钮包含下面的一段代码,,这里事先保存了一张同名的图片,所以可以直接点击Load Image读取。
打开摄像头程序
void c_DialogTeclarn::OnBnClickedButtonOpenCamera()
{
CvCapture *q_pCvCapture=cvCreateCameraCapture(0);
if(NULL==q_pCvCapture)
{
return;
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
}
IplImage *q_pIplImageCapture=cvQueryFrame(q_pCvCapture);
if(NULL==q_pIplImageCapture)
{
return;
}
if(NULL!=m_pIplImageSource)
{
cvReleaseImage(&m_pIplImageSource);
m_pIplImageSource=NULL;
}
m_pIplImageSource=cvCloneImage(q_pIplImageCapture);
cvReleaseCapture(&q_pCvCapture);
CWnd *e_pCWn
机器视觉矩形与圆检测(共12页) 来自淘豆网m.daumloan.com转载请标明出处.