OpenCV滑动条的创建


      关键字:cvCreateTrackbar()
                   cvDrawContours()

1.cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change );
参数:
trackbar_name 被创建的trackbar名字。
window_name 窗口名字,这个窗口将为被创建trackbar的父对象。
value 整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。
count 滑块位置的最大值。最小值一直是0。
on_change 每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int); 如果没有回调函数,这个值可以设为NULL。


2.void cvDrawContours( CvArr *img, CvSeq* contour,CvScalar external_color, CvScalar hole_color,int max_level, int thickness=1,
int line_type=8, CvPoint offset=cvPoint(0,0) );
参数:
img   要在其上绘制轮廓的图像。和在其他绘图函数里一样,轮廓是ROI的修剪结果。
contour  指向第一个轮廓的指针
external_color  外轮廓的颜色。
hole_color  内轮廓的颜色。
max_level  画轮廓的最大层数。如果是0,只绘制contour;如果是1,将绘制contour后和contour同层的所有轮廓;如果是2,绘制contour后所有同层和低一层的轮廓,以此类推;如果值是负值,则函数并不绘制contour后的轮廓,但是将画出其子轮廓,一直到abs(max_level) - 1层。
thicknes 绘制轮廓线的宽度。如果为负值(例如,等于CV_FILLED),则contour内部将被绘制。
line_type 轮廓线段的类型,具体查看cvLine的描述。
offset 按给定值移动所有点的坐标。

主要算法:
//定义回调函数on_trackbar来实现想要的结果
void on_trackbar(int) {
if (pos ==NULL)
{
gray = cvCreateImage(cvGetSize(src), 8, 1);
pos = cvCreateMemStorage(0);
}
else {
cvClearMemStorage(pos);//创建内存块
}
CvSeq *contours = 0;
cvCvtColor(src, gray,CV_BGR2GRAY);
cvThreshold(gray, gray, g_thresh, 255,CV_THRESH_BINARY);
cvFindContours(gray, pos, &contours);//寻找轮廓
cvZero(gray);
if (contours)
cvDrawContours(gray, contours, cvScalarAll(255), cvScalarAll(255), 200);//绘制轮廓
cvShowImage("Img", gray);
}



主函数:int main(void)

{

src= cvLoadImage("03.jpg");

cvNamedWindow("Img");

cvCreateTrackbar("Threshold", "Img", &g_thresh, 255, on_trackbar);//创建滑动条

on_trackbar(0);cvWaitKey(0);


return 0;}

运行结果如下:实现的功能:随着滑动条的变化,图片的灰度值也跟着变化。彩色图片为原图:

OpenCv滑动条的创建OpenCv滑动条的创建OpenCv滑动条的创建OpenCv滑动条的创建




                      参考文献:OpenCV中文网站

                                        关键字的函数结构参考来自----百度百科

相关文章:

  • 2021-04-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
  • 2022-02-26
  • 2021-10-01
  • 2021-11-27
猜你喜欢
  • 2021-11-21
  • 2021-07-12
  • 2021-10-25
  • 2022-12-23
  • 2021-11-29
  • 2021-12-12
相关资源
相似解决方案