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에 띄웁니다.
출력 결과

공유하기
Kakao
Naver
Twitter
LinkedIn
Facebook
댓글 남기기