写过一点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是什么,没办法解答

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

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?