第一步:获取素材图片
Mat src, dst;
src = imread("F:/识图/底图.PNG", 1);
dst = imread("logo", -1);
【ps:这里需要注意的是透明度图片获取,后面的参数带-1】
第二步:缩放Logo
Mat zoomPrint( Mat src,float zoom) {
resize(src, src, Size(0, 0), zoom, zoom, INTER_LINEAR);
return src;
}
第三步:旋转Logo
//旋转
void rotatePrint(Mat src, float angle) {
Point center = Point(src.cols / 2, src.rows / 2);
float scale = 1;
Mat rot_mat = getRotationMatrix2D(center, angle, scale);
warpAffine(src, src, rot_mat, src.size());
}
第四步:合成两张图片
方法一:
void combineBehind(Mat src,Mat dst) {
int rownumber = src.rows;
int colnumber = src.cols;
for (int i = 0; i < rownumber; i++)
{
for (int j = 0; j < colnumber; j++)
{
float alpha = src.at<Vec4b>(i, j)[3];
if (alpha <= 0) {
src.at<Vec4b>(i, j)[0] = dst.at<Vec3b>(i, j)[0];