C#/C# OpenCV/

C# OpenCV 4-6. 노이즈 생성

2019. 11. 13.

대표함수

Cv2.Randn 정규분포를 나타내는 이미지를 랜덤하게 생성

Cv2.AddWeighted 두 이미지를 가중치를 설정하여 합침

 

Example Code

using System;
using System.Windows.Forms;
using OpenCvSharp;

namespace gasussiantest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Mat src = new Mat("image.jpg");
            Mat noise = new Mat(src.Size(), MatType.CV_8UC3);

            Cv2.Randn(noise, Scalar.All(0), Scalar.All(50));
            Cv2.ImShow("filter", noise);
            Cv2.AddWeighted(src, 1, noise, 1, 0, noise);

            Cv2.ImShow("src", src);
            Cv2.ImShow("dst", noise);

            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();
        }
    }
}

 

Explain Code


Cv2.Randn(noise, Scalar.All(0), Scalar.All(50));
Cv2.AddWeighted(src, 1, noise, 1, 0, noise);

Cv2.Randn(dst, Scalar mean, Scalar stddev)

    평균값 mean, 표준편차 stddev 를 분포로하는 이미지를 dst에 출력

Cv2.AddWeighted(scr1, double alpha, src2, double beta, duoble gamma, dst)

    src1*alpha + src2*beta+gamma 값을 가지는 이미지를 dst에 출력

 

결과