opencv 绿幕抠图 python版 c++版

x33g5p2x  于2022-06-06 转载在 Python  
字(1.7k)|赞(0)|评价(0)|浏览(424)

python版绿幕抠图

  1. import cv2
  2. image = cv2.imread("images/green_screen.jpg")
  3. cv2.imshow("input",image)
  4. # 将图片BGR转化为HSV进行处理
  5. hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
  6. # 计算图像绿值的范围,则除了图像人物以外,其他均为白色255,图像人物为黑色0
  7. mask = cv2.inRange(hsv,(35,43,46),(77,255,255))
  8. # 将图像进行取反操作,则图像人物为白色255,其他为黑色0
  9. cv2.bitwise_not(mask,mask)
  10. # 将原图和取反后的图在mask区域内进行与操作,则保留人物,其他为黑色,因此将人物抠出来了!
  11. result = cv2.bitwise_and(image,image,mask=mask)
  12. cv2.imshow("mask",mask)
  13. cv2.imshow("result",result)
  14. cv2.waitKey(0)
  15. cv2.destroyAllWindows()

————————————————
版权声明:本文为CSDN博主「Q小鑫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42108414/article/details/119943104

c++版绿幕抠图

  1. #include <opencv2/opencv.hpp>
  2. #include <iostream>
  3. #include <vector>
  4. #include <cstdio>
  5. #include <cstring>
  6. using namespace cv;
  7. using namespace std;
  8. int main()
  9. {
  10. //1、设置需要去除的颜色
  11. //2、颜色比对
  12. //3、展示效果
  13. //只有png有透明度空间,jpg是没有透明度空间的
  14. Mat srcImg = imread("E:/img/lvbu.jpg", -1);
  15. cout << srcImg.channels() << endl;
  16. Vec3b color(0, 255, 0); //绿色
  17. //int tempr = 0;
  18. int tempc = 0;
  19. //先把图片放大,做完抠图后再缩小。
  20. Mat temp;
  21. //转换图片,增加透明区域
  22. cvtColor(srcImg, temp, COLOR_RGB2BGRA);
  23. for (int i = 0; i < srcImg.rows; ++i) {
  24. for (int j = 0; j < srcImg.cols; ++j) {
  25. Vec3b &pixel = srcImg.at<Vec3b>(i, j);
  26. Vec4b &pixel_temp = temp.at<Vec4b>(i, j);
  27. if (pixel[0] <= 30 && pixel[1] >= 210 && pixel[2] <= 30) {
  28. tempc = j + 1; //把符合要求的下一个点也抠掉
  29. pixel_temp[3] = 0;
  30. //pixel[0] = 255;
  31. //pixel[1] = 255;
  32. //pixel[2] = 255;
  33. }
  34. else if (tempc == j - 1) {
  35. pixel_temp[3] = 0;
  36. /*pixel[0] = 255;
  37. pixel[1] = 255;
  38. pixel[2] = 255;*/
  39. }
  40. }
  41. }
  42. imshow("result", temp);
  43. imwrite("E:/img/result.png", temp);
  44. waitKey(0);
  45. return 0;
  46. }

————————————————
版权声明:本文为CSDN博主「拽拽就是我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32355021/article/details/124733893

相关文章