opencv 简单模糊和高斯模糊 cvSmooth
cv::Mat 是C++版OpenCV的新结构. cvSmooth() 是老版 C API. 没有把C接口与C + + 结合。cvSmooth(CV_BLUR)等价在新的C++ 接口。cvSmooth:void callCvSmooth(cv::Mat srcmtx, cv::Mat dstmtx, int smooth_type,查看
int param1, int param2, double param3, double param4 )
{
IplImage src = srcmtx;
IplImage dst = dstmtx;
cvSmooth( &src, &dst, smooth_type, param1, param2, param3, param4 );
}cvSmooth实现 :
CV_IMPL void
cvSmooth( const void* srcarr, void* dstarr, int smooth_type,
int param1, int param2, double param3, double param4 )
{
cv::Mat src = cv::cvarrToMat(srcarr), dst0 = cv::cvarrToMat(dstarr), dst = dst0;
CV_Assert( dst.size() == src.size() &&
(smooth_type == CV_BLUR_NO_SCALE || dst.type() == src.type()) );
if( param2 <= 0 )
param2 = param1;
if( smooth_type == CV_BLUR || smooth_type == CV_BLUR_NO_SCALE )
cv::boxFilter( src, dst, dst.depth(), cv::Size(param1, param2), cv::Point(-1,-1),
smooth_type == CV_BLUR, cv::BORDER_REPLICATE );
else if( smooth_type == CV_GAUSSIAN )
cv::GaussianBlur( src, dst, cv::Size(param1, param2), param3, param4, cv::BORDER_REPLICATE );
else if( smooth_type == CV_MEDIAN )
cv::medianBlur( src, dst, param1 );
else
cv::bilateralFilter( src, dst, param1, param3, param4, cv::BORDER_REPLICATE );
if( dst.data != dst0.data )
CV_Error( CV_StsUnmatchedFormats, "The destination image does not have the proper type" );
}
图像平滑
平滑方法
中值滤波
滤波原理
高斯滤波
介绍
例子
#define WINDOWNAME2 "window2"
IplImage * image = cvLoadImage("文件名",CV_LOAD_IMAGE_GRAYSCALE);
IplImage * newimage=cvLoadImage("文件名",CV_LOAD_IMAGE_GRAYSCALE);
cvSmooth(image,newimage,CV_BLUR,3,3,0,0);
cvShowImage(WINDOWNAME1,image);
cvShowImage(WINDOWNAME2,newimage);
cvDestroyAllWindows();
return 0;
}
opencv 简单模糊和高斯模糊 cvSmooth的更多相关文章
- OpenCV学习 6:平滑滤波器 cvSmooth()——2
原创文章,欢迎转载,转载请注明出处 前面进行了彩色的模糊处理,我们对黑白图片进行同样的平滑处理,看看效果.首先是需要创建黑白图片,我对opencv的各种函数还不是很熟悉,我们可以先用熟悉的创建单通道的 ...
- opencv之模糊处理
初学OpenCV的开发者很容易被OpenCV中各种滤波方法所困扰,不知道到底该用哪里一个来做滤波.表面原因看起来是因为OpenCV中各种滤波方式实在是太多太杂, 其背后原因是对各种滤波方法的应用场景认 ...
- opencv 简单、常用的图像处理函数(2)
opencv的项目以来配置和环境变量的配置都很简单,对于我这个没有c++基础的来说,复杂的是opencv的api和一些大部分来自国外没有翻译的资料,以及一些常见的编码问题. 资料 opencv 中文a ...
- 简单的java高斯模糊算法
import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOEx ...
- openCV 简单实现身高测量(未考虑相机标定,windows)
(一) OpenCV3.1.0+VS2015开发环境配置 下载OpenCV安装包(笔者下载3.1.0版本) 环境变量配置(opencv安装路径\build\x64\vc14\bin,注意的是x64文件 ...
- Opencv学习笔记——视频高斯模糊并分别输出
用两个窗口进行对比 #include "stdafx.h" #include <iostream> #include <opencv2/core/core.hpp ...
- Opencv 简单的图片显示
#include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\cxcore.h> int ...
- opencv 双边模糊,膨胀腐蚀 开 闭操作
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main(int argc, ...
- OpenCV——旋转模糊
参考来源: 学习OpenCV:滤镜系列(5)--径向模糊:缩放&旋转 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #defi ...
随机推荐
- 两个Canvas小游戏
或许连小游戏都算不上,可以叫做mini游戏. 没有任何框架或者稍微有点深度的东西,所以有js基础的或者要追求炫酷效果的可以直接ctrl+w了. 先贴出两个游戏的试玩地址: 是男人就走30步 是男人就忍 ...
- C# StopWatch的使用
在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性 名称 说明 Elapsed 获取当前实例测量得出的总 ...
- 在CentOS上部署基于dnx/coreclr的ASP.NET 5应用程序
在Ubuntu上写好了一个简单的ASP.NET 5应用程序,尝试将这个程序部署在没有mono环境的CentOS服务器上. 部署步骤如下: 1)安装libuv(KestrelHttpServer需要它) ...
- 前端 head 中mate 详解
<meta name="viewport" content="width=device-width,height=device-height,initial-sca ...
- android 一条线
还在为布局的时候做不出来一条细细的线而烦恼么? 哈哈,自从知道了写法腰也不酸了,腿也不疼了!一口气写100行!! <View android:layout_height="1px&qu ...
- mybatis自动生成代码
使用maven集成mybatis-generator插件生成Mybatis的实体类,DAO接口和Map映射文件 本例中,使用的是mysql数据库 前提:表已经建好 mybatis框架的jar包,数据 ...
- canvas拖动
var canvas=document.getElementById("canvas"); var cxt=canvas.getContext("2d"); v ...
- Flexbox 布局
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- js获取上传的文件并用ajax提交
<form id="form1" name="form1" encType="multipart/form-data" method= ...
- [转]十步完全理解SQL
原文地址:http://blog.jobbole.com/55086/ 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程 ...