Shouldn't you change the bound of your for
loop?
for(i=0; i < contours[0].size(); i++)
{
contours_poly[0][i].x = contours_poly[0][i].x - mc[1].x;
contours_poly[0][i].y = contours_poly[0][i].y - mc[1].y;
contours_poly[1][i].x = contours_poly[1][i].x - mc[1].x;
contours_poly[1][i].y = contours_poly[1][i].y - mc[1].y;
}