【问题标题】:Java OpenCV - detecting ROI, creating submat and copy to original matJava OpenCV - 检测投资回报率,创建子垫并复​​制到原始垫
【发布时间】:2016-06-16 13:04:09
【问题描述】:

我正在尝试对网络摄像头检测到的所有人的面部进行模糊处理。 问题是当网络摄像头检测到面部时,程序会显示带有模糊面部的裁剪垫。

我尝试将模糊面放入原始垫子中,但它不起作用。

for(Rect rect : faces.toArray()){
    Imgproc.rectangle(frame, rect.tl(), rect.br(), new Scalar(0,0,255),3);
    Rect rectCrop = new Rect(rect.x, rect.y , rect.width, rect.height);
    Mat imageROI = grayFrame.submat(rectCrop);

    //frame is the original mat with the correct size
    Imgproc.GaussianBlur(imageROI, frame, new Size(55, 55), 55);
}

没有人脸检测:

人脸检测:

【问题讨论】:

    标签: java opencv blur mat


    【解决方案1】:

    使用 Mat 的这个构造函数

    Mat imageROI = new Mat(grayFrame,rectCrop);
    

    而不是

     Mat imageROI = grayFrame.submat(rectCrop);
    

    构造函数为您提供对 grayFrame 拥有的数据矩阵的引用。所以对 submat 的任何修改都会影响 bigmat。submat 给出了裁剪矩形的 grayFrame 数据矩阵的副本。所以对 submat 的修改不会影响 bigmat。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多