코코야이야기
[c++] OpenCV 트랙바추가 본문
소스코드
//트랙바 추가
#include "cv.h"
#include "highgui.h"
void on_change(int pos =0);
IplImage *srcImage, *dstImage;
int main()
{
if((srcImage = cvLoadImage("test.jpg", CV_LOAD_IMAGE_GRAYSCALE)) ==NULL)
return -1;
dstImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U,1); //흑백만 가능
cvNamedWindow("srcImage",CV_WINDOW_AUTOSIZE);
cvShowImage("srcImage", srcImage);
cvNamedWindow("dstImage",CV_WINDOW_AUTOSIZE);
cvShowImage("dstImage", dstImage);
int pos = 100;
on_change(pos);
cvCreateTrackbar("threshold","dstImage",&pos,255,on_change);
//cvCreateTrackbar(트랙바이름, 트랙바를 붙일 윈도우 이름,슬라이더의 위치, 슬라이더의 최대 위차값, 트랙바의 슬라이더가 변경될때마다 자동호출되는 핸들러함수)
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&dstImage);
cvReleaseImage(&srcImage);
}
//trackbar callback to threshold the image gray value
void on_change(int pos)
{
//Direct TresholdingcvNamedWindow("srcImage",CV_WINDOW_AUTOSIZE);
cvShowImage("srcImage", srcImage);
int x, y, s, r;
int nTreshold = pos;
for(y=0;y<srcImage->height;y++)
for(x=0;x<srcImage->width;x++)
{
r = cvRound(cvGetReal2D(srcImage,y,x));
if(r>nTreshold)
s=255;
else
s=0;
cvSetReal2D(dstImage,y,x,s);
}
cvShowImage("dstImage",dstImage);
}
출력영상
'프로그래밍 > OpenCV' 카테고리의 다른 글
[c++] OpenCV 직선검출 (0) | 2015.09.23 |
---|---|
[c++] OpenCV 영상엣지검출 (0) | 2015.09.23 |
[c++] OpenCV 도형그리기5 (0) | 2015.09.22 |
[c++] OpenCV 문자열출력2 (0) | 2015.09.21 |
[c++] OpenCV 문자열출력1 (0) | 2015.09.21 |