1.cvSmooth函数

函数 cvSmooth 可使用简单模糊、简单无缩放变换的模糊、中值模糊、高斯模糊、双边滤波的不论什么一种方法平滑图像。每一种方法都有自己的特点以及局限。 没有缩放的图像平滑仅支持单通道图像,而且支持8位到16位的转换(与cvSoble和cvaplace相似)和32位浮点数到32位浮点数的变换格式。

简单模糊和高斯模糊支持 1- 或 3-通道, 8-比特 和 32-比特 浮点图像。

这两种方法能够(in-place)方式处理图像。

中值和双向滤波工作于 1- 或 3-通道, 8-位图像,可是不能以 in-place 方式处理图像。

定义原型

void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN,
                                 int param1, int param2, double param3, double param4 );

src:输入图像.
dst:输出图像.
smoothtype平滑方法:
CV_BLUR_NO_SCALE(简单不带尺度变换的模糊) - -对每一个象素的 param1×param2 领域求和。假设邻域大小是变化的,能够事先利用函数 cvIntegral 计算积分图像。
CV_BLUR (simple blur)——对每一个象素param1×param2邻域求和并做尺度变换 1/(param1×param2)。
CV_GAUSSIAN(gaussian blur)——对图像进行核大小为 param1×param2 的高斯卷积。

CV_MEDIAN(median blur)——对图像进行核大小为param1×param1 的中值滤波 (邻域是方的)。
CV_BILATERAL(双向滤波)——应用双向 3x3 滤波,彩色 sigma=param1。空间 sigma=param2.。

2.实例

IplImage* CaptureImg()
{IplImage* pImg = NULL;CvCapture* pCam = NULL;pCam = cvCreateCameraCapture(0);if(NULL == pCam){fprintf(stderr, "Can't init Camera!\n");return NULL;}cvSetCaptureProperty(pCam, CV_CAP_PROP_FRAME_WIDTH, 640);cvSetCaptureProperty(pCam, CV_CAP_PROP_FRAME_HEIGHT,480);pImg = cvQueryFrame(pCam);if(NULL == pImg){fprintf(stderr, "Can't get one frame\n");return NULL;}cvSaveImage("Capture.jpg", pImg, 0);return pImg;
}//图像处理
IplImage* HandleImg(IplImage* pImg)
{IplImage* pDst = NULL;if(NULL == pImg){printf("The pImg you need handle is NULL!\n");return NULL;}pDst = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 3);//平滑处理cvSmooth(pImg, pDst, CV_GAUSSIAN, 5, 5, 0, 0);cvSaveImage("Smooth.jpg", pDst, 0);return pDst;
}

效果图:

         

模糊后:

版权声明:本文博客原创文章,博客,未经同意,不得转载。

八.使用OpenCv图像平滑操作相关推荐

  1. Python OpenCV像素操作

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...

  2. opencv鼠标操作,画矩形

    opencv鼠标操作,画矩形 效果图 主要两个函数在作用 //-------------------全局函数声明部分------------------------- //描述:全局函数的声明 //- ...

  3. OpenCV图像操作的实例(附完整代码)

    OpenCV图像操作的实例 OpenCV图像操作的实例 OpenCV图像操作的实例 #include "opencv2/core.hpp" #include "openc ...

  4. OpenCV图像操作

    OpenCV图像操作 OpenCV图像操作 输入输出 图片 图像的基本操作 访问像素强度值 内存管理和引用计数 原始操作 可视化图像 OpenCV图像操作 输入输出 图片 C ++ 从文件加载图像: ...

  5. Silverlight Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)

    Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior) 原文:Silverlight & Blend动画设计系列八: ...

  6. OpenCV形态学操作

    OpenCV形态学操作 本文转载自:http://blog.csdn.net/byxdaz/article/details/5775717 一.图像腐蚀 膨胀 细化的基本原理   1.图像细化的基本原 ...

  7. RxJava 学习笔记(八) --- Combining 结合操作

    @(Rxjava学习笔记) RxJava 学习笔记(八) - Combining 结合操作 RxJava 学习笔记八 Combining 结合操作 StartWith 在数据序列的开头插入一条指定的项 ...

  8. openCV视频操作(C++版本)

    openCV视频操作(C++版本) VideoCapture类详解 opencv的视频操作主要用到 VideoCapture类,有三个构造函数: VideoCapture::VideoCapture( ...

  9. C++ OpenCV视频操作之图像输出文字

    前言 当我们视频分析时可能图像中需要有一个文字说明,OpenCV中本身也有这个API,我们就来看看OpenCV中的图像文字输出. 视频效果 函数API void putText( Mat& i ...

最新文章

  1. API 网关从入门到放弃
  2. 利用OpenCV实现图像拼接的代码
  3. 建立索引要考虑的因素
  4. 学习对象对神经网络迭代次数的影响
  5. 用户体验分析: 以 “南通市图书馆微信公众号” 为例
  6. django-vue-admin前端设置后台接口地址为127.0.0.1产生跨域问题解决办法
  7. 会场安排问题 http://acm.nyist.net/JudgeOnline/problem.php?pid=14
  8. android 圆环温度控件,android 圆环倒计时控件
  9. 在 windows 下使用 Xming+Putty 显示 Linux 下软件图形界面
  10. w ndows10即将停止更新,微软开始警告Windows 10 v1909用户即将停止更新服务
  11. Java 大小写转换
  12. 面向文档的NoSQL数据库MongoDB
  13. 又一腾讯应用将停运!企业QQ将于2022年1月31日关闭
  14. C++_sizeof关键字_实型(也叫浮点型)---C++语言工作笔记011
  15. pythonfor循环输入_python的for循环
  16. dataframe保存为txt_Word,PDF,PPT,TXT之间的相互转换方法
  17. 如何用UE4制作2D游戏文档(五)——战斗篇
  18. 或非门sr锁存器_d锁存器与sr锁存器的区别
  19. html5微信mp3播放器代码,[微信音频播放器] html5 audio 制做的微信播放器
  20. ios 请求头设置token_AFNetworking的请求头设置(token)

热门文章

  1. Java对异常处理或抛出之后,后面代码会不会再执行?
  2. Android 出现“此用户无法使用开发者选项”问题
  3. 小米6 android os,脱离安卓!小米6刷入全新系统:界面炫酷,可流畅日常使用!...
  4. iis php5.6.8配置,Windows 8.1 + IIS 8.5 + PHP 5.6.3配置
  5. spring之java配置(springboot推荐的配置方式)
  6. mysql 1个月多少天_在MySQL日期间隔中,1个月是否与30天相同? 1个季度与3个月相同吗?等等?...
  7. 双代号网络图节点编号原则_一表多图(表格/横道图/网络图)让计划编制效率提高10倍...
  8. 2021-01-20 Matlab画图技巧与实例:堆叠图stackedplot
  9. java 默认焦点_按钮活动焦点阴影默认问题
  10. HTML学习04之内联框架和表单