伪造微信截图工具(改)

这篇博客介绍了一种利用OpenCV解决大学社团外联场景下朋友圈截图伪造问题的方法。通过给定两张朋友圈截图,提取头像并覆盖到推广内容上,达到仿造转发效果。博主提供了实现思路和代码示例,代码中使用了鼠标回调函数来选取需要替换的区域,并进行了图片尺寸调整以适应显示。

大纲

 本程序希望解决的问题是大学中社团外联常见的扩散要求,即需要为赞助商的产品发朋友圈,同学找到你让你转发的时候又不好直接拒绝,就可以通过个办法伪造一下朋友圈截图。注:自己拉的外联的话该转发还是转发吧,人家毕竟给了钱。。。

实现思路

 给定两张朋友圈截图,一张包含自己发的朋友圈以从中提取头像区域;一张为其他人转发的含推广内容的朋友圈,将前一张的头像提取到后一张头像区域,或者将后一张的推广区域覆盖到前一张内容区域即完成了目标。
 使用opencv实现的话就是为两张图片分别开辟两个窗口,在source窗口中框选出要提取的区域,在product区域左击要覆盖区域的左上角,自动将前述提取区域覆盖至此,由于手机截图的分辨率一般较大,无法在窗口中完全显示,所以预先resize到了固定大小。
代码如下:

#include<opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;
#define MAX_HEIGHT 800

void ROI_linearBlending(Mat srcImg_1, Mat srcImg_2, string saving_path);
void MouseCall(int event, int x, int y, int flag, void* paramas);
void ROI(int event, int x, int y, int flag, void* paramas);
void DrawRect(Mat& img, Rect box);

int width = 0, height = 0;
bool drawbox = false;
Rect _rectangle;
Rect source_rect, product_rect;


int main()
{
   
   
	string img_path1;
	string img_path2;
	string save_path;

	cout <<"input source_img path:\n";
	cin >> img_path1;
	cout << "input dest_img path:\n";
	cin >> img_path2;
	cout << "input saving path:\n";
	cin >> save_path;


	Mat srcImg_1 = imread(img_path1);
	Mat srcImg_2 = imread(img_path2);
	cout << "shape of first imag:(" << srcImg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值