int main(){
Mat imageROI;
Mat image = imread(“D.png”);
Mat logo = imread(“ROI.png”);//插入的LOGO图像
imageROI= image(cv::Rect( 0 ,0
logo.cols,logo.rows));
// 把标志作为掩码(必须是灰度图像)//原图像截取一个矩形。0,0代表坐标,后两个代表宽,高
cv::Mat mask(logo);
// 插入标志,只复制掩码不为 0 的位置,取掩码
logo.copyTo(imageROI,mask);//imageROI和mask先重叠(其实为image的内存空间和mask重叠,image 和imageROI 为同一内存空间),lOGO图像在复制过去
imshow(“1”, logo);
imshow(“2”, imageROI);
imshow(“3”, image);
imshow(“4”, mask );
waitKey(0);
}
opencv,图像插入掩码图像
最新推荐文章于 2025-09-11 21:29:23 发布
本文介绍如何使用OpenCV在一张图像上叠加另一张图像的方法。通过读取两张图像,使用cv::Rect定义区域,创建掩码并应用logo.copyTo()函数实现图像叠加,最后展示叠加效果。
1万+

被折叠的 条评论
为什么被折叠?



