由于时间关系这里先暂且贴上必要算法的代码;
//获取一个矩形区域中的子区域
void COpencvDlg::GetClipRect(CPoint point, LPRECT lpRect,int d)
{
CRect rect ;
rect=*lpRect ;
lpRect->left=point.x-d ;
lpRect->top=point.y-d ;
if(lpRect->left<0)
lpRect->left=0 ;
if(lpRect->top<0)
lpRect->top=0 ;
lpRect->right=lpRect->left+2*d ;
lpRect->bottom=lpRect->top+2*d ;
if(lpRect->bottom>rect.bottom)
{
lpRect->top=rect.bottom-2*d ;
lpRect->bottom=rect.bottom ;
}
if(lpRect->right>rect.right)
{
lpRect->left=rect.right-2*d ;
lpRect->right=rect.right ;
}
}
void COpencvDlg::ProcessMouseMove(int nFlags, CPoint point)
{
CPoint mPoint1,mPoint2 ;
CPoint mTemp ;
CDC *pDc ;
CRect rect ;
CvRect