大纲
本程序希望解决的问题是大学中社团外联常见的扩散要求,即需要为赞助商的产品发朋友圈,同学找到你让你转发的时候又不好直接拒绝,就可以通过个办法伪造一下朋友圈截图。注:自己拉的外联的话该转发还是转发吧,人家毕竟给了钱。。。
实现思路
给定两张朋友圈截图,一张包含自己发的朋友圈以从中提取头像区域;一张为其他人转发的含推广内容的朋友圈,将前一张的头像提取到后一张头像区域,或者将后一张的推广区域覆盖到前一张内容区域即完成了目标。
使用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

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

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



