写过一点C++ 2019-04-03 15:01 采纳率: 75%
浏览 2719
已采纳

OpenCV中通过高斯混合模型对背景进行建模,得到的前景图像只能是二值图像吗?

videoPath = 'E:\\BaiduNetdiskDownload\\gasoline\\demo\\1\\1.mp4'
capture = cv2.VideoCapture(videoPath)
mog = cv2.createBackgroundSubtractorMOG2()
while(1):
    ret, frame = capture.read()     #frame是摄像头的每一帧图像
    print(frame.shape)
    fgmask = mog.apply(frame)   #得到二值图像
    print(fgmask.shape)

通过高斯混合模型进行背景建模,得到的前景图像只能是二值图像吗?上述代码中frame.shape是(1080,1920,3),而fgmask.shape是(1080,1920),如果想要得到**彩色RGB前景图像**,直接使用cv2.cvtColor函数操作是不能恢复的吧,应该怎么进行正确的格式转化?还请问,OpenCV中没有集成的RGB转HSI的函数吗?

  • 写回答

1条回答 默认 最新

  • 泡视界 2019-04-04 17:43
    关注

    朋友,第一个问题:
    我用过这个函数。BackgroundSubtractorMOG2这个函数是高斯背景差分函数。输出是黑白的二值图片。
    第二个问题如何得到彩色的北京分图片:
    仅提供思路,代码要码很多。
    二值化后的图片前景为白色,值为255,二进制位11111111,背景位黑色,值为0,二进制为00000000。这是所有值都是unsinged的情况。
    你可以将你的RGB原图转化为YUV(OpenCV应该有函数可以实现),然后用Y值和fgmask做鱼操作(与或非的与)。如此亮度信号就只保留了mask内部的值,也就是你的前景信号。如此即可得到你要的彩色前景图像。
    第三个问题:
    不清楚HSI是什么,没办法解答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用