【OpenCV入门教程之十一】 形态学图像处理 二开运算 闭运算 形态学梯度( 五 )


运行效果图:

【OpenCV入门教程之十一】 形态学图像处理 二开运算 闭运算 形态学梯度

文章插图
3.4 形态学梯度示例程序
中调用函数进行形态学梯度操作的示例程序如下:
//-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include #include#include //-----------------------------------【命名空间声明部分】---------------------------------------//描述:包含程序所使用的命名空间//-----------------------------------------------------------------------------------------------using namespace cv;//-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数 , 我们的程序从这里开始//-----------------------------------------------------------------------------------------------int main( ){//载入原始图Mat image = imread("1.jpg");//工程目录下应该有一张名为1.jpg的素材图//创建窗口namedWindow("【原始图】形态学梯度");namedWindow("【效果图】形态学梯度");//显示原始图imshow("【原始图】形态学梯度", image);//定义核Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//进行形态学操作morphologyEx(image,image, MORPH_GRADIENT, element);//显示效果图imshow("【效果图】形态学梯度", image);waitKey(0);return 0; }
运行效果图:
【OpenCV入门教程之十一】 形态学图像处理 二开运算 闭运算 形态学梯度

文章插图
3.5 顶帽运算(Top Hat)示例程序
中调用函数进行顶帽运算操作的示例程序如下:
//-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include #include#include //-----------------------------------【命名空间声明部分】---------------------------------------//描述:包含程序所使用的命名空间//-----------------------------------------------------------------------------------------------using namespace cv;//-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数 , 我们的程序从这里开始//-----------------------------------------------------------------------------------------------int main( ){//载入原始图Mat image = imread("1.jpg");//工程目录下应该有一张名为1.jpg的素材图//创建窗口namedWindow("【原始图】顶帽运算");namedWindow("【效果图】顶帽运算");//显示原始图imshow("【原始图】顶帽运算", image);//定义核Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//进行形态学操作morphologyEx(image,image, MORPH_TOPHAT, element);//显示效果图imshow("【效果图】顶帽运算", image);waitKey(0);return 0; }
运行效果图:
【OpenCV入门教程之十一】 形态学图像处理 二开运算 闭运算 形态学梯度

文章插图
3.6 黑帽运算()示例程序
中调用函数进行黑帽运算操作的示例程序如下:
//-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include #include #include //-----------------------------------【命名空间声明部分】---------------------------------------//描述:包含程序所使用的命名空间//-----------------------------------------------------------------------------------------------using namespace cv;//-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数 , 我们的程序从这里开始//-----------------------------------------------------------------------------------------------int main( ){//载入原始图Mat image = imread("1.jpg");//工程目录下应该有一张名为1.jpg的素材图//创建窗口namedWindow("【原始图】黑帽运算");namedWindow("【效果图】黑帽运算");//显示原始图imshow("【原始图】黑帽运算", image);//定义核Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//进行形态学操作morphologyEx(image,image, MORPH_BLACKHAT, element);//显示效果图imshow("【效果图】黑帽运算", image);waitKey(0);return 0; }