C# OpenCvSharp 워터마크 제거 이미지 복구.rar

C# OpenCvSharp 워터마크 제거 이미지 복구.rar

38.05MBRAR

C# OpenCvSharp 워터마크 제거 이미지 복구.rar

전체 데모, 실행 준비 완료

스포츠 이벤트

VS2022+.net4.8+OpenCvSharp4

코딩

System.

Generic; System.Collections를 사용합니다.

System.ComponentModel을 사용합니다.

System.Data를 사용합니다.

System.Drawing을 사용합니다.

System.IO를 사용합니다.

System.Linq를 사용합니다.

System.Security.Cryptography를 사용합니다.

System.Text를 사용합니다.

System.Windows.Forms를 사용합니다.

OpenCvSharp를 사용합니다.

OpenCvSharp.Extensions를 사용합니다.

네임스페이스 OpenCvSharp_워터마크 제거_이미지 복원

{

  공용 부분 클래스 Form1 : Form

  {

    public Form1()

    {

      초기화 컴포넌트();

    }

    비트맵 bmp.

    문자열 fileFilter = "*. *|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";

    문자열 imgPath = "";

    public Mat img, img0, inpainted, inpaintMask;

    int 두께 = 10;

    문자열 CommandText.

    인페인트 메서드 인페인트 메서드.

    ListItem li;

    private void Form1_Load(객체 sender, EventArgs e)

    {

      이.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true)을 설정합니다;

      이.업데이트스타일();

      //아이템 추가:

      cBoxThresholdTypes.Items.Add(new ListItem("NS", InpaintMethod.NS));

      cBoxThresholdTypes.Items.Add(new ListItem("Telea", InpaintMethod.Telea));

      //선택 항목을 설정합니다:

      cBoxThresholdTypes.SelectedIndex = 0; //색인별

    }

    private void trackBar2_Scroll(객체 sender, EventArgs e)

    {

      두께 = 트랙바2.값;

    }

    private void button1_Click(객체 sender, EventArgs e)

    {

      OpenFileDialog ofd = 새 OpenFileDialog();

      ofd.Filter = 파일필터;

      if (ofd.ShowDialog() ! = DialogResult.OK) 반환합니다;

      이미지 경로 = ofd.파일 이름;

      bmp = 새 비트맵(imgPath);

      PictureBox1.Image = bmp;

      img0 = Cv2.ImRead(imgPath);

      inpaintMask = 새로운 Mat(img0.Size(), MatType.CV_8U, Scalar.Black);

      pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

      PictureBox3.Image = null;

    }

    private void cBoxThresholdTypes_SelectedIndexChanged(객체 sender, EventArgs e)

    {

      Inpaint().

    }

    private void trackBar1_Scroll(객체 sender, EventArgs e)

    {

      Inpaint().

    }

    private void button4_Click(객체 sender, EventArgs e)

    {

      if (pictureBox1.Image == null)

      {

        반환합니다;

      }

      이미지 = img0.Clone();

      inpaintMask = 새로운 Mat(img0.Size(), MatType.CV_8U, Scalar.Black);

      inpainted = img0.EmptyClone();

      창 wImage = 새 창("이미지", img);

      OpenCvSharp.Point prevPt = 새로운 OpenCvSharp.Point(-1, -1);

      wImage.SetMouseCallback((MouseEventTypes ev, int x, int y, MouseEventFlags flags, IntPtr userdata)=>

      {

        if (ev == MouseEventTypes.LButtonUp || (flags & MouseEventFlags.LButton) == 0)

        {

          prevPt = 새로운 OpenCvSharp.Point(-1, -1);

        }

        else if (ev == MouseEventTypes.LButtonDown)

        {

          prevPt = 새로운 OpenCvSharp.Point(x, y);

        }

        else if (ev == MouseEventTypes.MouseMove && (flags & MouseEventFlags.LButton) ! = LButton)!

        {

          OpenCvSharp.Point pt = 새로운 OpenCvSharp.Point(x, y);

          if (prevPt.X < 0)

          {

            이전Pt = pt;

          }

          inpaintMask.Line(prevPt, pt, Scalar.White, 두께, LineTypes.AntiAlias, 0);

          pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

          img.Line(prevPt, pt, Scalar.White, thickness, LineTypes.AntiAlias, 0);

          이전Pt = pt;

          wImage.ShowImage(img);

        }

      });

      시도

      {

        for (; ; )

        {

          switch ((char)Window.WaitKey(0))

          {

            case (char)27: // exit

              반환합니다;

            대소문자 'r'.

              인페인트마스크.세트투(스칼라.블랙);

              pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

              img0.CopyTo(img);

              wImage.ShowImage(img);

              break;

            케이스 'i'.

            케이스 '\r'.

              Inpaint().

              break;

          }

        }

      }

      마침내

      {

        창을 모두 파괴합니다();

      }

    }

    private void button3_Click(객체 sender, EventArgs e)

    {

      Inpaint().

    }

    void Inpaint()

    {

      if (pictureBox1.Image == null)

      {

        반환합니다;

      }

      li = (ListItem)cBoxThresholdTypes.SelectedItem;

      인페인트 메서드 = (인페인트 메서드)li.Value;

      Cv2.Inpaint(img, inpaintMask, inpainted, trackBar1.Value, inpaintMethod);

      pictureBox3.Image = BitmapConverter.ToBitmap(inpainted);

      CommandText = String.Format("Cv2.Inpaint(src, mask, dst,{0},{1})", trackBar1.Value, inpaintMethod.ToString());

      txtCommandText.Text = CommandText;

    }

  }

}

 

System.

Generic; System.Collections를 사용합니다.

System.ComponentModel을 사용합니다.

System.Data를 사용합니다.

System.Drawing을 사용합니다.

System.IO를 사용합니다.

System.Linq를 사용합니다.

System.Security.Cryptography를 사용합니다.

System.Text를 사용합니다.

System.Windows.Forms를 사용합니다.

OpenCvSharp를 사용합니다.

OpenCvSharp.Extensions를 사용합니다.

 

네임스페이스 OpenCvSharp_워터마크 제거_이미지 복원

{

  공용 부분 클래스 Form1 : Form

  {

    public Form1()

    {

      초기화 컴포넌트();

    }

 

 

    비트맵 bmp.

    문자열 fileFilter = "*. *|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";

    문자열 imgPath = "";

    public Mat img, img0, inpainted, inpaintMask;

    int 두께 = 10;

    문자열 CommandText.

    인페인트 메서드 인페인트 메서드.

    ListItem li;

 

    private void Form1_Load(객체 sender, EventArgs e)

    {

      이.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true)을 설정합니다;

      이.업데이트스타일();

 

      //아이템 추가:

      cBoxThresholdTypes.Items.Add(new ListItem("NS", InpaintMethod.NS));

      cBoxThresholdTypes.Items.Add(new ListItem("Telea", InpaintMethod.Telea));

 

      //선택 항목을 설정합니다:

      cBoxThresholdTypes.SelectedIndex = 0; //색인별

    }

 

    private void trackBar2_Scroll(객체 sender, EventArgs e)

    {

      두께 = 트랙바2.값;

    }

 

    private void button1_Click(객체 sender, EventArgs e)

    {

      OpenFileDialog ofd = 새 OpenFileDialog();

      ofd.Filter = 파일필터;

      if (ofd.ShowDialog() ! = DialogResult.OK) 반환합니다;

      이미지 경로 = ofd.파일 이름;

      bmp = 새 비트맵(imgPath);

      PictureBox1.Image = bmp;

      img0 = Cv2.ImRead(imgPath);

      inpaintMask = 새로운 Mat(img0.Size(), MatType.CV_8U, Scalar.Black);

      pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

      PictureBox3.Image = null;

    }

 

    private void cBoxThresholdTypes_SelectedIndexChanged(객체 sender, EventArgs e)

    {

      Inpaint().

    }

 

    private void trackBar1_Scroll(객체 sender, EventArgs e)

    {

      Inpaint().

    }

 

    private void button4_Click(객체 sender, EventArgs e)

    {

      if (pictureBox1.Image == null)

      {

        반환합니다;

      }

 

      이미지 = img0.Clone();

      inpaintMask = 새로운 Mat(img0.Size(), MatType.CV_8U, Scalar.Black);

      inpainted = img0.EmptyClone();

 

      창 wImage = 새 창("이미지", img);

 

      OpenCvSharp.Point prevPt = 새로운 OpenCvSharp.Point(-1, -1);

      wImage.SetMouseCallback((MouseEventTypes ev, int x, int y, MouseEventFlags flags, IntPtr userdata)=>

      {

        if (ev == MouseEventTypes.LButtonUp || (flags & MouseEventFlags.LButton) == 0)

        {

          prevPt = 새로운 OpenCvSharp.Point(-1, -1);

        }

        else if (ev == MouseEventTypes.LButtonDown)

        {

          prevPt = 새로운 OpenCvSharp.Point(x, y);

        }

        else if (ev == MouseEventTypes.MouseMove && (flags & MouseEventFlags.LButton) ! = LButton)!

        {

          OpenCvSharp.Point pt = 새로운 OpenCvSharp.Point(x, y);

          if (prevPt.X < 0)

          {

            이전Pt = pt;

          }

          inpaintMask.Line(prevPt, pt, Scalar.White, 두께, LineTypes.AntiAlias, 0);

          pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

          img.Line(prevPt, pt, Scalar.White, thickness, LineTypes.AntiAlias, 0);

          이전Pt = pt;

          wImage.ShowImage(img);

        }

      });

 

      시도

      {

        for (; ; )

        {

          switch ((char)Window.WaitKey(0))

          {

            case (char)27: // exit

              반환합니다;

            대소문자 'r'.

              인페인트마스크.세트투(스칼라.블랙);

              pictureBox2.Image = BitmapConverter.ToBitmap(inpaintMask);

              img0.CopyTo(img);

              wImage.ShowImage(img);

              break;

            케이스 'i'.

            케이스 '\r'.

              Inpaint().

              break;

          }

        }

      }

      마침내

      {

 

        창을 모두 파괴합니다();

      }

    }

 

    private void button3_Click(객체 sender, EventArgs e)

    {

      Inpaint().

    }

 

    void Inpaint()

    {

      if (pictureBox1.Image == null)

      {

        반환합니다;

      }

 

      li = (ListItem)cBoxThresholdTypes.SelectedItem;

      인페인트 메서드 = (인페인트 메서드)li.Value;

 

      Cv2.Inpaint(img, inpaintMask, inpainted, trackBar1.Value, inpaintMethod);

      pictureBox3.Image = BitmapConverter.ToBitmap(inpainted);

      CommandText = String.Format("Cv2.Inpaint(src, mask, dst,{0},{1})", trackBar1.Value, inpaintMethod.ToString());

      txtCommandText.Text = CommandText;

    }

  }

}

리소스 다운로드이 리소스의 다운로드 가격은 다음과 같습니다.22.0금화부터 먼저 주세요
리소스 다운로드
가격 다운로드22.0 코인

리소스 정책(구매는 이 정책에 동의하는 것으로 간주됩니다):
1. 웹 사이트 플랫폼에서의 모든 작업은 웹 사이트 등록 계약 및 면책 조항 하단을 읽고 동의 한 것으로 간주되며,이 사이트 리소스는 초저가이며 기술 지원을 제공하지 않습니다.
2. 일부 네트워크 사용자가 공유하는 넷 디스크 주소가 오류 발생 등 유효하지 않을 수 있으므로 고객 서비스 코드711cn#qq.com (#를 @로 대체)으로 이메일을 보내 주시기 바랍니다.
이 사이트는 부정적인 변경이 없도록 다운로드 가능한 모든 리소스 (소프트웨어 등) 사이트를 제공합니다. 그러나이 사이트는 리소스의 정확성, 보안 및 무결성을 보장 할 수 없으며 사용자는 자신의 재량에 따라 다운로드하며 모든 소스 코드가 100% 오류가 없거나 버그가없는 것은 아니라는 목적으로 배우기 위해 통신하며 코드를 읽고 이해할 수있는 특정 기초가 있어야 디버깅을 수정할 수 있습니다! 코드를 수정하고 오류를 해결할 수 있어야 합니다. 동시에 이 사이트의 사용자는 소스 코드 편의점이 다운로드용으로 제공된 소프트웨어에 대한 어떠한 권리도 소유하지 않으며, 저작권은 리소스의 법적 소유자에게 있음을 이해해야 합니다.
4. 본 사이트의 모든 자료는 학습 및 연구 목적으로 만 다운로드 한 후 24시간 이내에 삭제해야 하며, 상업적 목적으로 사용하지 마시고, 그렇지 않을 경우 발생하는 법적 분쟁은 사이트 및 부수적 책임 사이트의 게시자에게 있으며 책임을지지 않습니다!
5. 재생산 가능한 자원의 특성으로 인해 일단 구매하면 환불이 불가능하며, 충전 잔액도 환불되지 않습니다.

充值送金币,用余额购买,低至6.7折!지금 충전하기

캡차 표시
계정이 없으신가요? 등록  비밀번호를 잊으셨나요?