1、抠图算法来源于网络
cv::Mat replace_and_blend(cv::Mat &frame, cv::Mat &bg, cv::Mat &mask)
{
cv::Mat result = cv::Mat::zeros(frame.size(), frame.type());
int h = frame.rows;
int w = frame.cols;
int dims = frame.channels();
// replace and blend
int m = 0;
double wt = 0;
int r = 0, g = 0, b = 0;
int r1 = 0, g1 = 0, b1 = 0;
int r2 = 0, g2 = 0, b2 = 0;
double time = GetTickCount();
for (int row = 0; row < h; row++)
{
uchar* current = frame.ptr<uchar>(row);
uchar* bgrow = bg.ptr<uchar>(row);
uchar* maskrow = m

本文介绍了一种基于OpenCV的实时抠图算法,通过HSV色彩空间转换与阈值处理实现背景分离,结合形态学操作去除噪点,最终通过自定义函数replace_and_blend完成前景与新背景的无缝融合,提升了抠图效果。

1万+

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



