C++用OpenCV透明背景图像匹配

首先加载两张图片,都是4通道的图片,1是源图片,2是背景透明的搜索对象

Mat source = imread("D:\\1.png", IMREAD_UNCHANGED);

Mat tmplImg = imread("D:\\2.png", IMREAD_UNCHANGED);

然后获取模板图片的alpha通道 作为遮罩蒙版(要忽略的部分)

std::vector<Mat> channels_4;

split(tmplImg, channels_4);

// channels_4[3] 就是了。

然后调用匹配函数

Mat result;

double dbMin;

Point minLoc;

matchTemplate(source, tmplImg, result, TM_SQDIFF_NORMED, channels_4[3]);

minMaxLoc(result, &dbMin, NULL, &minLoc, NULL, Mat());

//dbMin越接近于0 结果越准确,说明匹配到了

minLoc.x ,minLoc.y 就是匹配的对象在源图片上的坐标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值