【问题标题】:How to merge two images using OpenCvSharp4 v4.2如何使用 OpenCvSharp4 v4.2 合并两个图像
【发布时间】:2020-01-16 19:03:45
【问题描述】:

我需要在 C# 中创建一个方法,该方法将接收图像(或图像的路径),对其进行模糊处理,然后尝试使用 OpenCvSharp4 将模糊图像与原始图像合并。到目前为止,我可以很好地创建模糊图像,但合并部分让我很难。我已经尝试了一些在线找到的示例代码,但无济于事。知道如何获得合并部分吗?

-谢谢,

  var mat = Cv2.ImRead(OriginalFileName, ImreadModes.Unchanged);
        Cv2.Resize(mat, mat, new Size(933, 934), 0d, 0d, InterpolationFlags.Linear);
        Cv2.CvtColor(mat, mat, ColorConversionCodes.BGR2RGB);
        Mat newImage = new Mat();
        Cv2.GaussianBlur(mat, newImage, new Size(67, 67), 0d, 0d, BorderTypes.Default);
        Cv2.CvtColor(newImage, newImage, ColorConversionCodes.BGR2RGB);
        Mat merged = Mat.Ones || Mat.Zeros // HELP NEEDED HERE
        Cv2.Merge(new Mat[] { mat, newImage }, merged);

【问题讨论】:

    标签: c# image opencvsharp


    【解决方案1】:

    在这里找到了一个很好的提示和示例代码:How to merge two images in opencv?

    这是我的最终解决方案:

     var mat = Cv2.ImRead(OriginalFileName, ImreadModes.Unchanged);
            Cv2.Resize(mat, mat, new Size(933, 934), 0d, 0d, InterpolationFlags.Linear);
            Cv2.CvtColor(mat, mat, ColorConversionCodes.BGR2RGB);
            Mat newImage = new Mat();
            Cv2.GaussianBlur(mat, newImage, new Size(67, 67), 0d, 0d, BorderTypes.Default);
            Cv2.CvtColor(newImage, newImage, ColorConversionCodes.BGR2RGB);
    
            //merging
            double alpha = 0; double beta; 
            Mat src1, src2, merge;
            merge = new Mat();
            src1 = mat;
            src2 = newImage;
            beta = (1.0 - alpha);
            Cv2.AddWeighted(src1, alpha, src2, beta, 0.0, merge);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-19
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2011-11-02
      相关资源
      最近更新 更多