在图像拼接中,由于光源和相机的影响,获得的图像常常不均匀,这样在后来的图像处理和图像拼接过程中就会导致拼接得到的图像出现明显的拼接线,影响视觉效果。
以下程序可以消除不均匀背景并且将图像的均值设置为一个指定的数值,这样得到的拼接图像就可以削弱拼接线。
IplImage * img = cvLoadImage("a.bmp", CV_LOAD_IMAGE_GRAYSCALE);
cvNamedWindow("before");
cvShowImage("before",img);
IplImage *img_bkg = cvCloneImage(img);
cvSmooth(img,img_bkg,CV_GAUSSIAN,71,71);
cvSub(img,img_bkg,img);
cvAddS(img,cvAvg(img_bkg),img);
cvSubS(img, cvScalar(cvAvg(img).val[0]-150.0, 0, 0, 0), img);
cvNamedWindow("after");
cvShowImage("after",img);
cvReleaseImage(&img_bkg);
cvReleaseImage(&img);