OpenCV学习第十二篇:带透明通道图像合成(缩放,旋转,和ROI)

阅读: 评论:0

OpenCV学习第十二篇:带透明通道图像合成(缩放,旋转,和ROI)

OpenCV学习第十二篇:带透明通道图像合成(缩放,旋转,和ROI)

第一步:获取素材图片

	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 = ls / 2, ws / 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 = ws;int colnumber = ls;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];src.at<Vec4b>(i, j)[1] = dst.at<Vec3b>(i, j)[1];src.at<Vec4b>(i, j)[2] = dst.at<Vec3b>(i, j)[2];}		}}
}

【把透明度区域换为另外一张图】
方法二:

//平移印花
int combinePrintReproduction(Mat &dst, Mat &scr, double scale)
{if (dst.channels() != 3 || scr.channels() != 4){return true;}if (scale < 0.01)return false;std::vector<cv::Mat>scr_channels;std::vector<cv::Mat>dstt_channels;split(scr, scr_channels);split(dst, dstt_channels);CV_Assert(scr_channels.size() == 4 && dstt_channels.size() == 3);if (scale < 1){scr_channels[3] *= scale;scale = 1;}for (int i = 0; i < 3; i++){dstt_channels[i] = dstt_channels[i].mul(255.0 / scale - scr_channels[3], scale / 255.0);dstt_channels[i] += scr_channels[i].mul(scr_channels[3], scale / 255.0);}merge(dstt_channels, dst);return true;
}

【注意dst参数是一个ROI区域,这个方法可以合成可以保留alpha通道,而方法addWeighted不行】

欢迎留言,有问题可以私密我!或者加群《601408323》!

本文发布于:2024-02-01 07:46:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674477634978.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:缩放   图像   通道   透明   第十二篇
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23