C# OpenCV 강좌 : 제 38강 - 트랙바

C# OpenCV CvWindowEx Trackbar

C# OpenCV 강좌 : 제 38강 - 트랙바
[ C#-OpenCvSharp2 ] - 윤대희

트랙바(Trackbar)


1 CvWindowEx를 사용하여 새롭게 띄운 윈도우 창에서는 C#에 포함되어 있는 트랙바를 사용할 수 없습니다.

CreateTrackbar을 사용하여 트랙바에 관한 이벤트를 실행할 수 있습니다.


원본(Source, src)를 영상이나 이미지를 사용하면 됩니다.

영상 사용하기 : 3강 바로가기

이미지 사용하기 : 4강 바로가기



Main Code


using OpenCvSharp.UserInterface;


IplImage src;
CvWindowEx window;


using (window = new CvWindowEx(src))
{
    window.Text = "CvWindowEx Threshold";
    window.CreateTrackbar("Threshold", 127, 255, TrackbarEvent);
    TrackbarEvent(127);
    CvWindowEx.WaitKey();
}


private void TrackbarEvent(int pos)
{
    using (IplImage temp = src.Clone())
    {
        Cv.Threshold(src, temp, pos, 255, ThresholdType.Binary);
        window.ShowImage(temp);
    }
}


Class Code


using OpenCvSharp.UserInterface;

CvWindowEx 함수를 사용하기 위해서는 네임스페이스using OpenCvSharp.UserInterface;를 선언해야 사용할 수 있습니다.


CvWindowEx window;
IplImage src;

전역 변수로 windowsrc를 선언합니다. 이는 TrackbarEvent()함수에서 지속적으로 사용되기 때문에 전역 변수로 선언합니다.


using (window = new CvWindowEx(src))
{
    window.Text = "CvWindowEx Threshold";
    window.CreateTrackbar("Threshold", 127, 255, TrackbarEvent); 
    TrackbarEvent(127);
    CvWindowEx.WaitKey();
}

CvWindowEx가 표시될 곳에 삽입합니다. 만약, 폼을 로드하자마자 사용한다면 private void Form1_Load(object sender, EventArgs e){} 구문에 삽입합니다

window.TextCvWindowEx의 제목입니다.

window.CreateTrackbar()를 이용하여 트랙바를 생성합니다. window.CreateTrackbar("내용", 초기값, 최대값, 트랙바이벤트)를 의미합니다.

TrackbarEvent(127);를 이용하여 초기값과 동일한 이미지를 띄웁니다.

CvWindowEx.WaitKey();를 이용하여 CvWindowEx 키를 누를때 까지 창이 종료되지 않게합니다.


private void TrackbarEvent(int pos)
{
    using (IplImage temp = src.Clone())
    {
        Cv.Threshold(src, temp, pos, 255, ThresholdType.Binary);
        window.ShowImage(temp);
    }
}

트랙바에 대한 이벤트를 생성합니다. 임시 이미지인 temp를 결과로 사용하기 위해서 src를 복제하여 사용합니다.

pos(Point Of Scale)을 이용하여 값을 조정합니다.

Cv.Threshold()를 적용하고, 임시(결과) 이미지window에 띄웁니다.



Result


2



Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post C# OpenCV 강좌 : 제 37강 - 마우스 콜백 ⤧  Next post C# OpenCV 강좌 : 제 39강 - Camera 출력 (Mat)
    C#-OpenCvSharp2 Category