Opencv学习笔记之使用图像掩码

掩码是一个8位图像,如果掩码中某个位置的值不为0,在这个位置上的操作不起作用;如果掩码中某些像素位置为0,那么对图像中相应位置的操作将不会起作用。

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>

cv::Mat image1,logo;
int main(int argc, char** argv) {
image1 = cv::imread(“E:/3.JPG”);
if (image1.empty()){
printf(“could not load image…\n”);
return -1;
}
cv::namedWindow(“Original Image”);
cv::imshow(“Original Image”, image1);
logo = cv::imread(“E:/7.JPG”);
if (logo.empty()) {
printf(“could not load image…\n”);
return -1;
}
cv::namedWindow(“INPUT Image”);
cv::imshow(“INPUT Image”, logo);
//在图像上定义一个ROI
cv::Mat imageROI(image1, //目标图像
cv::Rect(150,150,//ROI坐标
logo.cols,logo.rows));//ROI大小
//把标志作为掩码(必须是灰度图像)
cv::Mat mask = cv::imread(“E:/7.JPG”);
//插入标志,只复制掩码不为0的位置
logo.copyTo(imageROI,mask);
cv::namedWindow(“OUTPUT Image”);
cv::imshow(“OUTPUT Image”, image1);
cv::waitKey(0);
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36536126/article/details/82842482
今日推荐