본문 바로가기
C#

[C#] OpenCV Cam ChromaKey - 캠 크로마키

by Jcoder 2021. 12. 2.

[C#] WPF - OpenCV, Cam 출력 (tistory.com)

 

[C#] WPF - OpenCV, Cam 출력

소스 : CsharpFramework/CameraCapture at main · tjdskaqks/CsharpFramework · GitHub tjdskaqks/CsharpFramework Contribute to tjdskaqks/CsharpFramework development by creating an account on GitHub. gi..

jcoder1.tistory.com

기존 코드에서 수정된 건 별로 없다.

 

private void _dispatcherTimer_Tick(object sender, EventArgs e) 부분 수정

        // 타이머 동작
        private void _dispatcherTimer_Tick(object sender, EventArgs e)
        {
            if (_videoCapture != null)
            {
                using (Mat mat = new Mat()) // 캠 캡쳐 후 이미지 소스 지정
                {
                    if (_videoCapture.Read(mat))
                    {
                        string chromaKeyPath = @"이미지 경로\CameraCaptureWPF\Resources\chromaKey_001.jpg";
                        var image1 = OpenCvSharp.Cv2.ImRead(chromaKeyPath).Resize(mat.Size()); // 이미지 로드 후 캠 화면이랑 동일한 사이즈로 변경.
                        using (Mat hsv = new Mat())
                        {
                            Cv2.CvtColor(mat, hsv, ColorConversionCodes.BGR2HSV);
                            using (Mat mask = new Mat())
                            {
                                Cv2.InRange(hsv, new Scalar(40, 120, 0), new Scalar(80, 255, 255), mask);
                                Cv2.CopyTo(image1, mat, mask);
                                image1?.Dispose();
                            }
                        }

                        var wb = WriteableBitmapConverter.ToWriteableBitmap(mat, 1024, 1024, PixelFormats.Bgr24, null);
                        img_Camera.Source = wb;
                    }
                }
            }
        }

결과