图像腐蚀erode与膨胀dilate综合示例
来源:互联网 发布:五运六气推算软件 编辑:程序博客网 时间:2024/04/29 20:35
图像腐蚀erode与膨胀dilate综合示例
//-----------------------------------【全局变量声明部分】--------------------------------------// 描述:全局变量声明
//-----------------------------------------------------------------------------------------------
Mat g_srcImage, g_dstImage;//原始图和效果图
int g_nTrackbarNumer = 0;//0表示腐蚀erode, 1表示膨胀dilate
int g_nStructElementSize = 3; //结构元素(内核矩阵)的尺寸
//-----------------------------------【全局函数声明部分】--------------------------------------
// 描述:全局函数声明
//-----------------------------------------------------------------------------------------------
void Process();//膨胀和腐蚀的处理函数
void on_TrackbarNumChange(int, void *);//回调函数
void on_ElementSizeChange(int, void *);//回调函数
void ShowHelpText();
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//改变console字体颜色
system("color 2F");
//载入原图
g_srcImage = imread("1.jpg");
if( !g_srcImage.data ) { printf("读取srcImage错误~! \n"); return false; }
ShowHelpText();
//显示原始图
namedWindow("【原始图】");
imshow("【原始图】", g_srcImage);
//进行初次腐蚀操作并显示效果图
namedWindow("【效果图】");
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(2*g_nStructElementSize+1, 2*g_nStructElementSize+1),Point( g_nStructElementSize, g_nStructElementSize ));
erode(g_srcImage, g_dstImage, element);
imshow("【效果图】", g_dstImage);
//创建轨迹条
createTrackbar("腐蚀/膨胀", "【效果图】", &g_nTrackbarNumer, 1, on_TrackbarNumChange);
createTrackbar("内核尺寸", "【效果图】", &g_nStructElementSize, 21, on_ElementSizeChange);
//输出一些帮助信息
cout<<endl<<"\t运行成功,请调整滚动条观察图像效果~\n\n"
<<"\t按下“q”键时,程序退出。\n";
//轮询获取按键信息,若下q键,程序退出
while(char(waitKey(1)) != 'q') {}
return 0;
}
//-----------------------------【Process( )函数】------------------------------------
// 描述:进行自定义的腐蚀和膨胀操作
//-----------------------------------------------------------------------------------------
void Process()
{
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(2*g_nStructElementSize+1, 2*g_nStructElementSize+1),Point( g_nStructElementSize, g_nStructElementSize ));
//进行腐蚀或膨胀操作
if(g_nTrackbarNumer == 0) {
erode(g_srcImage, g_dstImage, element);
}
else {
dilate(g_srcImage, g_dstImage, element);
}
//显示效果图
imshow("【效果图】", g_dstImage);
}
//-----------------------------【on_TrackbarNumChange( )函数】------------------------------------
// 描述:腐蚀和膨胀之间切换开关的回调函数
//-----------------------------------------------------------------------------------------------------
void on_TrackbarNumChange(int, void *)
{
//腐蚀和膨胀之间效果已经切换,回调函数体内需调用一次Process函数,使改变后的效果立即生效并显示出来
Process();
}
//-----------------------------【on_ElementSizeChange( )函数】-------------------------------------
// 描述:腐蚀和膨胀操作内核改变时的回调函数
//-----------------------------------------------------------------------------------------------------
void on_ElementSizeChange(int, void *)
{
//内核尺寸已改变,回调函数体内需调用一次Process函数,使改变后的效果立即生效并显示出来
Process();
}
//-----------------------------------【ShowHelpText( )函数】-----------------------------
// 描述:输出一些帮助信息
//----------------------------------------------------------------------------------------------
void ShowHelpText()
{
//输出欢迎信息和OpenCV版本
printf("\n\n\t\t\t非常感谢购买《OpenCV3编程入门》一书!\n");
printf("\n\n\t\t\t此为本书OpenCV2版的第40个配套示例程序\n");
printf("\n\n\t\t\t 当前使用的OpenCV版本为:" CV_VERSION );
printf("\n\n ----------------------------------------------------------------------------\n");
}
0 0
- 图像腐蚀erode与膨胀dilate综合示例
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- 第5章/图像形态学-膨胀(dilate)和腐蚀(erode)
- opencv 膨胀(dilate)与腐蚀(erode)---基本 数学形态学
- 图像腐蚀与膨胀综合示例
- 笔记:形态学操作-----腐蚀Erode && 膨胀 Dilate
- 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算
- 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算------理论知识及其对应函数
- 形态学处理(一)膨胀(dilate)与腐蚀(erode)
- c++ 实现 膨胀(dilate)腐蚀(erode)
- 图像腐蚀erode函数用法示例
- 图像膨胀dilate函数用法示例
- 图像腐蚀与膨胀
- 图像腐蚀与膨胀
- OpenCV 腐蚀与膨胀+轨迹条控制 综合示例
- 腐蚀与膨胀示例代码
- 图像处理--腐蚀与膨胀
- 图像膨胀与腐蚀实现
- Fedora 22安装ffmpeg-devel
- C++学习笔记6 - 分支语句和逻辑运算符
- Android逆向之旅---Android应用的汉化功能(修改SO中的字符串内容)
- ZOJ 1070 该题最关键的步骤就是推导公式 以下公式推导感谢@pearl333大神
- Android studio 中的Theme Editor神器
- 图像腐蚀erode与膨胀dilate综合示例
- Xcode7上传审核遇到ERROR ITMS-90049 , ERROR ITMS-90062错误
- Dom4j解析XML小结
- 5-15 PAT Judge (25分)
- 【SDCC讲师专访】Swoole开源项目创始人韩天峰:PHP是最好的编程语言
- 使用Gradle搭建SSM
- grails获取网站网址方法
- 6.1.4 击键和字符
- IOS--Xcode基本操作