opencv 绿幕抠图c++
时间: 2023-12-08 09:06:56 浏览: 137
以下是使用OpenCV进行绿幕抠图的C++代码示例:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图片
Mat image = imread("images/green_screen.jpg");
// 将图片BGR转化为HSV进行处理
Mat hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
// 计算图像绿值的范围,则除了图像人物以外,其他均为白色255,图像人物为黑色0
Mat mask;
inRange(hsv, Scalar(35, 43, 46), Scalar(77, 255, 255), mask);
// 将图像进行取反操作,则图像人物为白色255,其他为黑色0
bitwise_not(mask, mask);
// 将原图和取反后的图在mask区域内进行与操作,则保留人物,其他为黑色,因此将人物抠出来了!
Mat result;
bitwise_and(image, image, result, mask);
// 显示结果
imshow("input", image);
imshow("mask", mask);
imshow("result", result);
waitKey(0);
destroyAllWindows();
return 0;
}
```
阅读全文