앉아있는 프래그래머

C# OpenCv 영상 이진화 본문

프로그래밍/C# OpenCv

C# OpenCv 영상 이진화

맛있는 단무지! 2018. 7. 19. 11:58


영상을 출력하였을때 영상과 이진화된 영상을 같이 출력 그리고 캡처를 하면 기본 캡처이미지와 이진화된 이미지 캡처


이번 내용은 앞에 내용 영상출력 pictureBoxIpl 3개와 값변경을 위한 텍스트 박스를 넣은 것



 

pictureBoxIpl3.ImageIpl = Binary(src);

 //Binary가 된 이미지를 pictureBoxIpl3에 출력




        IplImage bin;      //binary된 이미지를 담을 껍데기


        public IplImage Binary(IplImage src)           //binay만들기.
        {
                bin = new IplImage(src.Size, BitDepth.U8, 1);

                //bin에 메모리 확보를 위하여 선언합니다. IplImage(크기, 정밀도, 채널)을 입력

                //단색일경우는 채널 1 , 다색일경우 3

                Cv.CvtColor(src, bin, ColorConversion.RgbToGray);

                //Cv.CvtColor()을 이용하여 그레이스케일
                Cv.Threshold(bin, bin,Convert.ToDouble(textBox1.Text), 255, ThresholdType.Binary);

                //Cv.Threshold(원본, 결과, 임계값, 최댓값, 임계값종류)를 설정

                //임계값이 0일경우 흑색 ,최대일경우 백색

                return bin;
         
        }

        public void Dispose()
        {
            if (bin != null) Cv.ReleaseImage(bin);
        }


        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            textBox1.Text = trackBar1.Value.ToString();   

            //임계값 수정
        }


            private void textBox1_TextChanged(object sender, EventArgs e)
            {
            trackBar1.Value = Convert.ToInt32(textBox1.Text);

                   //임계값 수정

            }





개인적인 공부로 하는거라 요약된 점이 많습니다.


혹시나 더 많은 정보를 원하시면 아래 주소로 들어가보시는걸 추천 드립니다 ^^



https://076923.github.io/posts/#c#-opencv

Comments