OpenCV学习(46)

本文档介绍OpenCV中的图像处理示例,重点是基本阈值操作的运用。通过实例程序展示了如何在不同阈值模式间切换,帮助理解阈值处理的各种功能。

图像处理(7):示例程序:基本阈值操作

讲解完这个函数,让我们看一个调用示例程序,这个示例程序演示了基本阈值操作的方方面面。此程序可以通过按键,在不同的阈值模式之间切换,操作说明如图6.72所示。

//----------------—----【头文件、命名空间包含部分】--------------------
// 描述:包含程序所依赖的头文件和命名空间
//----------------------—-—-------------------------------------------
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
// ---------------------------【宏定义部分】---------------------------
// 描述:定义一些辅助宏
// -------------------------------------------------------------------
#define WINDOW_NAME "【程序窗口】"//为窗口标题定义的宏
//------------------------ - 【全局变量声明部分】-----------------------
//描述 : 全局变量的声明
//------------------------------------------------------------------------
int g_nThresholdvalue = 100;
int g_nThresholdType = 3;
Mat g_srcImage, g_grayImage, g_dstImage;
//------------------------ - 【全局函数声明部分】-------------------------
// //描述 : 全局函数的声明
// ----------—----------------------------------------------------------
static void ShowHelpText();//输出帮助文字
void on_Threshold( int,void* );//回调函数

// ------------ - —--— - —--------【 main()函数】------—————————-- - / /
//描述:控制台应用程序的入口函数,我们的程序从这里开始执行
//------------------------------------------------------------------------------- -
int main()
{
	// 【1】读入源图片
	g_srcImage = imread("E:/pictures/2.jpg");
	if (!g_srcImage.data) { printf("读取图片错误,请确定目录下是否有imread函数指定的图片存在~!ln"); return false; }
	// 【2】存留一份原图的灰度图
	cvtColor(g_srcImage, g_grayImage,
		COLOR_RGB2GRAY);
	// 【3】创建窗口并显示原始图
	namedWindow(WINDOW_NAME, WINDOW_AUTOSIZE);
	// 【 4】创建滑动条来控制阈值
	createTrackbar("模式",
		WINDOW_NAME, &g_nThresholdType, 4, on_Threshold);
	createTrackbar("参数值",
		WINDOW_NAME, &g_nThresholdvalue, 255, on_Threshold);
	// 【5】初始化自定义的阈值回调函数on_Threshold(0, 0);
	on_Threshold(0, 0);
	// 【 6】轮询等待用户按键,如果ESC键按下则退出程序
	while (1)
	{
		int key;
		key = waitKey(20);
		if ((char)key == 27)
		{
			break;
		}
	}
	// ----------------------- 【 on_Threshold ()函数】--l l描述:自定义的阈值回调函数
	//--------------------------
	void on_Threshold(int, void*);
	{
		//调用阈值函数
		threshold(g_grayImage, g_dstImage, g_nThresholdvalue, 255, g_nThresholdType);
		//更新效果图
		imshow(WINDOW_NAME, g_dstImage);
	}
}



 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值