int g_nStructElementSize = 3; //结构元素(内核矩阵)的尺寸 //获取自定义核Mat element =getStructuringElement(MORPH_RECT,Size(2*g_nStructElementSize+1,2*g_nStructElementSize+1),Point(g_nStructElementSize, g_nStructElementSize ));
调用这样之后 , 我们便可以在接下来调用erode、或函数时 , 参数填保存t返回值的Mat类型变量 。对应于我们上面的示例 , 就是填变量 。
其中的这些操作都可以进行就地(in-place)操作 。且对于多通道图像 , 每一个通道都是单独进行操作 。
OK , 讲解完毕 , 下面就是使用的范例 。
高能预警!高能预警!高能预警!
一大波示例代码正在逼近 。
为了方便大家需要的时候随时取用 。下面我们依次列举出开运算 , 闭运算 , 形态学梯度 , 顶帽 , 黑帽 , 腐蚀 , 膨胀的效果实现简化版完整代码 。
其实说白了 , 这些代码基本上内容一致 , 其实就是改一下里面的第三个标识符参数而已 。核都是选的 , 矩形元素结构 。
另外 , 通过看源码我们发现 , 最基本的腐蚀和膨胀操作也可以用函数来实现 , 他们由函数源码中的前两个case来实现(虽然在case体内就是简单地各自调用了一下erode和函数 , 但还是有写出来的必要) 。所以在这里 , 我们也用再重新来实现一遍他们 。
按着顺序来列出吧 , 就直接列详细注释好的代码和运行结果了 。
3.2 开运算示例程序
中调用函数进行开运算操作的示例程序如下:
//-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#include
运行效果图:
文章插图
3.3 闭运算示例程序
中调用函数进行闭运算操作的示例程序如下:
//-----------------------------------【头文件包含部分】---------------------------------------//描述:包含程序所依赖的头文件//----------------------------------------------------------------------------------------------#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_CLOSE, element);//显示效果图imshow("【效果图】闭运算", image);waitKey(0);return 0; }
- 调和油不如动物油吗 调和油好还是不调和的油好
- 最短路+建图 昂贵的聘礼
- exb 俄宣布制裁英首相
- 水占地球表面积的百分之几 水占地球表面积的百分之几
- 【ns-3】VS Code开发环境配置
- 【ZUFE-竞赛学分】一文认清浙财创新创业学分认定及课程学分转换、第三课堂分
- 手机版好看站是什么软件
- 斜视的治疗方式是什么
- 做手术会感染白血病吗
- 【重要】2023年关于高校与研究所机构采购有三AI课程的最新服务流程与说明