#include "stdafx.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <stdio.h>
#include <iostream>
using namespace std;
using namespace cv;
Mat src, srcGray, dst;
char * windowName = "Threshold Demo"; // 窗口标题
char * trackbarType = "Type"; // 选取阈值方法的滑动条标题
char * trackbarValue = "Value"; // 选取阈值大小的滑动条标题
int const maxValue = 255; // 最大阈值
int const maxType = 3; // 阈值方法的总数
int threadhold = 0; // 当前阈值大小
int threadholdType = 3; // 当前所用阈值方法
void threadOpreation(int, void* ); // 声明阈值操作函数
int main(int argc, char** argv)
{
char * filename = "d:\\lena.jpg";
src = imread(filename,1);
if (!src.data)
{
cout << "read image error !" << endl;
return -1;
}
// 变成灰度图像
cvtColor(src, srcGray, CV_RGB2GRAY);
// 创建一个窗口显示图片
namedWindow(windowName, CV_WINDOW_AUTOSIZE);
// 创建滑动条
createTrackbar(trackbarType, windowName, &threadholdType, maxType, threadOpreation);
createTrackbar(trackbarValue, windowName, &threadhold, maxValue, threadOpreation);
// 初始化自定义阈值函数
threadOpreation(0, 0);
while (true)
{
int c = 0;
c = waitKey(10);
if (27 == c)
{
break;
}
}
}
void threadOpreation(int, void* )
{
/*
0: 二进制阈值
1: 反二进制阈值
2: 截断阈值
3: 0阈值
*/
threshold(srcGray, dst, threadhold, maxValue,threadholdType);
imshow(windowName, dst);
}
opencv2 threshod函数例程
最新推荐文章于 2021-04-05 08:17:31 发布