C# OpenCV 강좌 : 제 38강 - 트랙바
트랙바(Trackbar)
CvWindowEx
를 사용하여 새롭게 띄운 윈도우 창에서는 C#에 포함되어 있는 트랙바를 사용할 수 없습니다.
CreateTrackbar
을 사용하여 트랙바에 관한 이벤트를 실행할 수 있습니다.
원본(Source, src)
은 영상이나 이미지를 사용합니다.
메인 코드
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);
}
}
세부 코드
using OpenCvSharp.UserInterface;
CvWindowEx
함수를 사용하기 위해서는 네임스페이스에 using OpenCvSharp.UserInterface;
를 선언해야 사용할 수 있습니다.
CvWindowEx window;
IplImage src;
전역 변수로 window
와 src
를 선언합니다.
이는 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.Text
는 CvWindowEx
의 제목입니다.
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
에 띄웁니다.
출력 결과
공유하기


댓글 남기기