仿造微信截图工具

为解决大学社团活动外联需求,作者自制Python代码,利用OpenCV实现朋友圈截图中特定区域的图片替换功能。通过滑动条调整,轻松选取并替换目标区域,实现一键广告更新。
Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

起因:身处大学身不由己,总有些社团活动需要拉外联啥的,一拉外联就的朋友圈发广告,还不能发私密。为了一劳永逸的解决这个问题,自己用pyhton写了一个类似于p图的代码。

目的:将一张朋友圈截图中的某一矩形区域替换为另一图片中的矩形区域。

原理:利用opencv给图片加上滑动条以及实现截取区域。

使用方法:在source窗口截取矩形区域,在material窗口点击会自动勾出等大矩形区域,按空格保存图片。

不足:滑动条部分,两张图片是共享的,现在懒得改了。。。。

代码:

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

using namespace cv;
using namespace std;

int h_x = 0, v_y = 0, d_x = 0, d_y = 0;  //记录滑动条变化值,以及保存当前值
Rect v_bar, h_bar;
bool x_change = false;
bool y_change = false; //判断是否改变
bool drawbox = false;
int width, height;
Rect source_rect, _rectangle, product_rect;
int img_x=0, img_y=0;   //记录滑动后截取图片在原图片中的位置
Rect roi_sour, roi_mater;    //进行p图的部分

void on_mouse(int event, int x, int y, int flags, void* param);
void draw_scrolls(Mat src_img,Mat& tempimg, const char* title, int width = 1400, int height = 700);
void DrawRect(Mat& img, Rect box);
void on_mouse_2(int event, int x, int y, int flags, void* param);
void ROI_linearBlending(Mat srcImg_1, Mat srcImg_2);

int main()
{
	const char* title = "source";
	const char* title2 = "material";
	Mat srcimg = imread("E:\\material\\pyq1.png");
	Mat srcimg2 = imread("E:\\material\\pyq2.png");
	Mat dstimg1,dstimg2;
	Mat tempimg1,tempimg2;
	namedWindow(title, 1);
	namedWindow(title2, 1);
	setMouseCallback(title, on_mouse);
	setMouseCallback(title2, on_mouse_2);
	while (true)
	{
		char c = waitKey(10);
		draw_scrolls(srcimg, dst

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值