得到图像中感兴趣的不规则的区域分为三步,分别如下:
1.在原图上用cvLine画出自己感兴趣的区域,比如这个区域可以有几个线段围起来,就用cvLine将所有的线段连起来
cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0) );
例子:
IplImage ipl_img;
cvLine(&ipl_img, cvPoint(2 * vertics(i, 0), 2 * vertics(i, 1)), cvPoint(2 * vertics(i + 1, 0), 2 * vertics(i + 1, 1)), CV_RGB(111, 12, 200), 2, 8, 1);
2.创建一张和原图同样大小的全黑图像,画上跟第一步同样的线,再把区域内全置为白色。
在纯黑图像上划线:
Mat image0 = imread("D:/imagewarping/imageset/10.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
IplImage *face = cvLoadImage("D:/imagewarping/imageset/10_.jpg");
Mat M_mask = image0.clone();
IplImage