cvMorphologyEx()

感性认识:可以实现几种使用的处理,如:反色、去掉边缘的模糊点(非常使用,以后再也不用一点一点地用画画板去擦)

函数原型:

CVAPI(void)  cvMorphologyEx( const CvArr* src, CvArr* dst,
                             CvArr* temp, IplConvKernel* element,
                             int operation, int iterations CV_DEFAULT(1) );

src原图像;dst目标图像;temp中间临时图像;element核;operation 五种形态学

/* Morphological operations */
enum
{
    CV_MOP_ERODE        =0,//腐蚀
    CV_MOP_DILATE       =1,//膨胀
    CV_MOP_OPEN         =2,//开运算
    CV_MOP_CLOSE        =3,//闭运算(平滑边缘)
    CV_MOP_GRADIENT     =4,//形态梯度(反色)
    CV_MOP_TOPHAT       =5,//“礼帽”
    CV_MOP_BLACKHAT     =6//“黑帽”
};

开运算的感性认识:

闭运算的感性认识:

形态梯度

测试用图:

#include <highgui.h>
#include<cv.h>
using namespace std;int main()
{IplImage *img_in = cvLoadImage("test.jpg",3);IplImage *img_temp =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);IplImage *img_out_1 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);IplImage *img_out_2 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);IplImage *img_out_3 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);IplImage *img_out_4 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);IplImage *img_out_5 =cvCreateImage(cvSize(img_in->width,img_in->height),IPL_DEPTH_8U,3);cvNamedWindow("img_in",CV_WINDOW_AUTOSIZE);cvShowImage("img_in",img_in);cvMorphologyEx(img_in,img_out_1,img_temp,NULL,CV_MOP_OPEN);cvNamedWindow("CV_MOP_OPEN",CV_WINDOW_AUTOSIZE);cvShowImage("CV_MOP_OPEN",img_out_1);cvMorphologyEx(img_in,img_out_2,img_temp,NULL,CV_MOP_CLOSE);cvNamedWindow("CV_MOP_CLOSE",CV_WINDOW_AUTOSIZE);cvShowImage("CV_MOP_CLOSE",img_out_2);cvMorphologyEx(img_in,img_out_3,img_temp,NULL,CV_MOP_GRADIENT);cvNamedWindow("CV_MOP_GRADIENT",CV_WINDOW_AUTOSIZE);cvShowImage("CV_MOP_GRADIENT",img_out_3);cvMorphologyEx(img_in,img_out_4,img_temp,NULL,CV_MOP_TOPHAT);cvNamedWindow("CV_MOP_TOPHAT",CV_WINDOW_AUTOSIZE);cvShowImage("CV_MOP_TOPHAT",img_out_4);cvMorphologyEx(img_in,img_out_5,img_temp,NULL,CV_MOP_BLACKHAT);cvNamedWindow("CV_MOP_BLACKHAT",CV_WINDOW_AUTOSIZE);cvShowImage("CV_MOP_BLACKHAT",img_out_5);cvWaitKey(0);cvDestroyAllWindows();cvReleaseImage(&img_in);cvReleaseImage(&img_out_1);cvReleaseImage(&img_out_2);cvReleaseImage(&img_out_3);cvReleaseImage(&img_out_4);cvReleaseImage(&img_out_5);return 0;
}

运行结果:

            

      

       

cvMorphologyEx() 多种图像形态学相关推荐

  1. 【图像处理】图像形态学处理系统Matlab源码

    1 简介 图像形态学处理可以为图像检测识别提供技术指导.通过MATLAB中多种函数的选择对图像进行不同算法处理,结果表明:利用MATLAB软件能够实现彩色图像分量提取​,加噪去噪.​ 2 部分代码 f ...

  2. 图像形态学(opencv),运行后通过在屏幕上输入对应指令完成相对应的形态学方法。

    图像形态学 1.开操作(MORPH_OPEN) 结果图类似腐蚀图 先腐蚀后膨胀的过程,开操作可以帮助消除图像中的小的干扰区域,并且在平滑较大物体的边界的同时不明显改变其面积. 2.闭操作(MORPH_ ...

  3. OpenCV中图像形态学操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:视学算法 图像形态学是图像处理的分支学科,在二值图像处理 ...

  4. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

  5. Matlab图像形态学处理—开操作和闭操作

    昨晚分享了图像形态学处理-开操作和闭操作的基本原理,同时基于Python的OpenCV实现了对应的图像处理,本文分享一下基于Matlab的图像形态学处理-开操作和闭操作. 传送门:Python Ope ...

  6. Python 计算机视觉(十一)—— OpenCV 图像形态学处理

    参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...

  7. [Medical Image Process] 3.2 GrayScale Morphology(灰阶图像形态学及基本运算)

    1.灰阶图像形态学 二值图像形态学向灰度空间的一个扩展.同样包含Dilation(膨胀).Erosion(腐蚀).Opening(开运算).Closing(闭运算).灰度图像形态学运算同时作用在位置和 ...

  8. OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽

    OpenCV与图像处理学习六--图像形态学操作:腐蚀.膨胀.开.闭运算.形态学梯度.顶帽和黑帽 四.图像形态学操作 4.1 腐蚀和膨胀 4.1.1 图像腐蚀 4.1.2 图像膨胀 4.2 开运算与闭运 ...

  9. OpenCv之图像形态学(笔记08)

    腐蚀:其原理是在原图的小区域内取局部最小值.这个核也叫结构元素,因为形态学操作其实也是应用卷积来实现的,结构元素可以是矩形.椭圆.十字架,可以用cv2.getStructuringElement()来 ...

  10. 图像的像素原点_超火的机器视觉OpenCVSharp学习笔记3——图像形态学处理

    一. 图像形态学处理的概念 在机器视觉中,我们获得一张图片首先要进行预处理,去掉噪声等杂乱的地方,突出我们感兴趣的区域,数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域 ...

最新文章

  1. CentOS系列启动流程详解
  2. php代码优化 -- array_walk 和 foreach, for 的效率的比较
  3. Tkinter Helloword !
  4. [Qt入门]模态和非模态对话框创建
  5. 在 VC6 中使用 GdiPlus-安装
  6. oracle数据库read only,oracle 报错Linux-x86_64 Error: 30: Read-only file system
  7. 深入浅出Flex组件生命周期Part4 ─ 引擎LayoutManager【转载】
  8. 一个利用sql 语句来实现分页的存储过程
  9. Visual Studio下的 JS CSS 压缩和编辑插件
  10. Django实战1-权限管理功能实现-10:用户管理
  11. React 性能优化技巧总结
  12. css3数字滚动特效
  13. u盘无法格式化不在计算机中,u盘被写保护无法格式化怎么办 u盘无法格式化原因及解决...
  14. DDOS防火墙新一代操作思路与进阶应用方法浅析
  15. 8分之七怎么用计算机,如何用八屏电脑看盘
  16. (水)noj2029节奏大师
  17. java pdf替换内容_Java添加、提取、替换和删除PDF图片
  18. 一键解决PPT的动画播放和动画排序问题!
  19. 使用MapReduce统计一篇微博数据的点赞次数,并且输出前五个最高的点赞数量。
  20. 减肥盘货之忙女人减肥美食打算

热门文章

  1. 移动目录下的隐藏文件
  2. 正则表达式匹配EXCEL地址字符串
  3. C#串口操作实际应用开发详解
  4. QQ正常网页无法访问故障分析
  5. 【笔记】ubuntu 16.04 centos 7如何配置sudo权限
  6. java 置换_Java中的置换和组合
  7. 动态启用和禁用mainfest中组件
  8. React Native 画虚线 DashLine
  9. [2018.08.02 T1] 第一题
  10. Luogu1894[USACO4.2] 完美的牛栏The Perfect Stall